Submit Search
Upload
Selenium入門(2023年版)
•
1 like
•
344 views
onozaty
Follow
社内勉強会でSeleniumについて話した資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 30
Download now
Download to read offline
Recommended
なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論
Tokoroten Nakayama
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
Guide To AGPL
Guide To AGPL
Mikiya Okuno
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
Elasticsearchインデクシングのパフォーマンスを測ってみた
Elasticsearchインデクシングのパフォーマンスを測ってみた
Ryoji Kurosawa
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
Daisuke Yamazaki
Recommended
なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論
Tokoroten Nakayama
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
Guide To AGPL
Guide To AGPL
Mikiya Okuno
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
Elasticsearchインデクシングのパフォーマンスを測ってみた
Elasticsearchインデクシングのパフォーマンスを測ってみた
Ryoji Kurosawa
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
Daisuke Yamazaki
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
Kazumi IWANAGA
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
Hiroshi Tokumaru
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
Wataru NOGUCHI
クラスローダーについて
クラスローダーについて
Suguru ARAKAWA
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
AWSではじめるMLOps
AWSではじめるMLOps
MariOhbuchi
BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話
itkr
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
naoto teshima
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
NTT DATA Technology & Innovation
flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!
zaki4649
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
Google Cloud Platform - Japan
Selenium入門
Selenium入門
onozaty
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介
Nobuhiko Futagami
More Related Content
What's hot
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
Kazumi IWANAGA
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
Hiroshi Tokumaru
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
Wataru NOGUCHI
クラスローダーについて
クラスローダーについて
Suguru ARAKAWA
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
AWSではじめるMLOps
AWSではじめるMLOps
MariOhbuchi
BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話
itkr
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
naoto teshima
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
NTT DATA Technology & Innovation
flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!
zaki4649
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
Google Cloud Platform - Japan
What's hot
(20)
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
分散システムについて語らせてくれ
分散システムについて語らせてくれ
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
クラスローダーについて
クラスローダーについて
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
AWSではじめるMLOps
AWSではじめるMLOps
BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
Redisの特徴と活用方法について
Redisの特徴と活用方法について
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
Similar to Selenium入門(2023年版)
Selenium入門
Selenium入門
onozaty
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介
Nobuhiko Futagami
Selenium IDE for primer
Selenium IDE for primer
yasukoS
Selenium2(web driver)
Selenium2(web driver)
Tetsuya Hasegawa
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
Yuki Okada
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
Tadashi Nemoto
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Nozomi Ito
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
Takeshi Kondo
テスト自動化の様々な道具を使ってみた四方山話
テスト自動化の様々な道具を使ってみた四方山話
haljik Seiji
Ja sst東北2013
Ja sst東北2013
勝信 今井
Selenium2(web driver) ide編
Selenium2(web driver) ide編
Tetsuya Hasegawa
Selenium
Selenium
takeuchi-tk
Seleniumまとめ
Seleniumまとめ
Sora Kubota
Rselenium Dockerとの接続
Rselenium Dockerとの接続
Sora Kubota
ローカル環境のテスト自動化【勉強会資料】
ローカル環境のテスト自動化【勉強会資料】
株式会社キャッチアップ
WebDriverで始めるUIスモークテスティング入門
WebDriverで始めるUIスモークテスティング入門
Kohki Nakashima
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
Nozomi Ito
エンタープライズ開発でのSelenium活用事例
エンタープライズ開発でのSelenium活用事例
isaac-otao
Windows Azure PHP Tips
Windows Azure PHP Tips
Microsoft Openness Japan
5分で分かるselenium conference berlin 2017
5分で分かるselenium conference berlin 2017
Toshiya Komoda
Similar to Selenium入門(2023年版)
(20)
Selenium入門
Selenium入門
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介
Selenium IDE for primer
Selenium IDE for primer
Selenium2(web driver)
Selenium2(web driver)
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
テスト自動化の様々な道具を使ってみた四方山話
テスト自動化の様々な道具を使ってみた四方山話
Ja sst東北2013
Ja sst東北2013
Selenium2(web driver) ide編
Selenium2(web driver) ide編
Selenium
Selenium
Seleniumまとめ
Seleniumまとめ
Rselenium Dockerとの接続
Rselenium Dockerとの接続
ローカル環境のテスト自動化【勉強会資料】
ローカル環境のテスト自動化【勉強会資料】
WebDriverで始めるUIスモークテスティング入門
WebDriverで始めるUIスモークテスティング入門
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
エンタープライズ開発でのSelenium活用事例
エンタープライズ開発でのSelenium活用事例
Windows Azure PHP Tips
Windows Azure PHP Tips
5分で分かるselenium conference berlin 2017
5分で分かるselenium conference berlin 2017
More from onozaty
チームで開発するための環境を整える
チームで開発するための環境を整える
onozaty
Java8から17へ
Java8から17へ
onozaty
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介
onozaty
最近作ったもの
最近作ったもの
onozaty
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
onozaty
「伝わるチケット」の書き方
「伝わるチケット」の書き方
onozaty
View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)
onozaty
View customize1.2.0の紹介
View customize1.2.0の紹介
onozaty
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
onozaty
Lombokの紹介
Lombokの紹介
onozaty
Spring Bootを触ってみた
Spring Bootを触ってみた
onozaty
30歳過ぎてもエンジニアでいるためにやったこと
30歳過ぎてもエンジニアでいるためにやったこと
onozaty
View customize pluginを使いこなす
View customize pluginを使いこなす
onozaty
View Customize Pluginで出来ること
View Customize Pluginで出来ること
onozaty
技術書のススメ
技術書のススメ
onozaty
課題管理と情報共有のためのツール群
課題管理と情報共有のためのツール群
onozaty
お試し用のLinux環境を作る
お試し用のLinux環境を作る
onozaty
業務で使うIRC
業務で使うIRC
onozaty
More from onozaty
(19)
チームで開発するための環境を整える
チームで開発するための環境を整える
Java8から17へ
Java8から17へ
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介
最近作ったもの
最近作ったもの
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
「伝わるチケット」の書き方
「伝わるチケット」の書き方
View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)
View customize1.2.0の紹介
View customize1.2.0の紹介
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
Lombokの紹介
Lombokの紹介
Spring Bootを触ってみた
Spring Bootを触ってみた
30歳過ぎてもエンジニアでいるためにやったこと
30歳過ぎてもエンジニアでいるためにやったこと
View customize pluginを使いこなす
View customize pluginを使いこなす
View Customize Pluginで出来ること
View Customize Pluginで出来ること
技術書のススメ
技術書のススメ
課題管理と情報共有のためのツール群
課題管理と情報共有のためのツール群
お試し用のLinux環境を作る
お試し用のLinux環境を作る
業務で使うIRC
業務で使うIRC
Recently uploaded
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Recently uploaded
(9)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Selenium入門(2023年版)
1.
Selenium入門 (2023年版) 2023-09-15 社内勉強会 onozaty
2.
2021年2月12日に発表したものを元にアップデート https://speakerdeck.com/onozaty/seleniumru-men
3.
Seleniumとは • Webブラウザの操作を自動化するためのフレームワーク • 主にWebアプリケーションのE2Eテストに利用 •
ブラウザ操作をプログラムで行うことができる • テスト以外の自動化ツールでも利用 • 単一のAPIで様々なブラウザを同じように操作可能 • 各ブラウザ×各OSの組み合わせで同じことを実行できる Seleniumの公式サイト https://www.selenium.dev/ ドキュメントの日本語訳 https://www.selenium.dev/documentation/ja/
4.
Seleniumの昔と今
5.
Seleniumの昔と今 - Selenium
RC 初期(10年以上前)のSelenium 1は、Selenium RC(Remote Control)とい う仕組みを使っていた • プロキシのような形で、テスト対象のサイトにJavaScriptを埋め込 んで操作するような仕組み • ブラウザのセキュリティに起因する制約あり • アーキテクチャ的に複雑→安定しない要因に ※ Selenium Core、Selenium RCといったキーワードが出てきたら、昔の情報なので要注意
6.
Seleniumの昔と今 - Selenium
WebDriver Selenium 2からWebDriverを使うように • WebDriverを使うことで、直接ブラウザを操作できるようになっ た • Selenium RCの時のようなセキュリティ制限を受けなくなった • シンプルな構成となった→安定するように • 現在ではW3Cで標準化されており、各ブラウザ毎にWebDriverの 実装が用意されている • 主にブラウザベンダが提供している
7.
Seleniumを構成する要素 • Selenium WebDriver •
Selenium IDE • Selenium Grid
8.
Selenium WebDriver https://www.selenium.dev/ja/documentation/webdriver/
9.
Selenium WebDriver • WebDriverを使うことで、ブラウザ操作をプログラムで行うことが できる 画像引用元:
https://www.selenium.dev/ja/documentation/overview/components/ 各プログラミング言語(Java、Python、C#、Ruby、 JavaScriptなど)のバインディングが提供されている。 PHPのようにSelenium公式にはなくて、他から提供さ れているものもあり。 各ブラウザ(Chrome、Firefox、Edgeなど) に対応したDriverが提供されている。 Web APIとして要求を受け付けて、 ブラウザを操作する。
10.
Selenium WebDriver -
利用方法 昔は各種ブラウザに対応したDriverを入手し、それをパスとして指定 する必要があったが、Selenium 4.6(2022年11月リリース)でSelenium ManagerというツールがSelenium本体に同梱され、Selenium Manager が自動で対応するブラウザのDriverをダウンロードしてくれるように なった。 • https://www.selenium.dev/ja/documentation/selenium_manager/ • 手動でのダウンロードが不要に • ブラウザのバージョンが上がる毎に、対応するDriverのバージョンもあ がって、動かなくなるということが以前は良く発生していた • WebDriverManager(Java)など、同じようなことをやってくれるラ イブラリもいくつかあったが、それも当然いらなくなる
11.
Selenium WebDriver -
利用方法 WebDriver driver = new ChromeDriver(); // サイトを開く driver.get("https://selenium.dev"); // id=search-byの要素を選択し、abcといった文字を入力 driver.findElement(By.id("search-by")).click(); driver.findElement(By.id("search-by")).sendKeys("abc"); // id=search-buttonの要素を探してclick driver.findElement(By.id("search-button")).click(); WebDriverのインスタンスを生成し、そのインスタンスを通して操作 ※今後出てくるコードは全てJavaでのコード
12.
Selenium WebDriverでのデモ https://github.com/onozaty/selenium-sandbox/tree/main/selenium-junit
13.
WebDriverを使いやすくしたもの • Selenium WebDriver自体は、テスト用というより、ブラウザ操作の ためのもの •
コードが冗長になりがち • テストランナーやアサーションは別途用意する必要がある
14.
WebDriverを使いやすくしたもの • WebDriverを内部で使いながら、テストを書きやすくするためのラ イブラリがいくつもある • Selenide
https://selenide.org/ • Java • WebdriverIO https://webdriver.io/ • Node.js
15.
Selenide WebDriver driver =
new ChromeDriver(); driver.get("http://192.168.33.10/"); driver.findElement(By.cssSelector("a[href=¥"/login¥"]")).click(); driver.findElement(By.id("username")).sendKeys("admin"); driver.findElement(By.id("password")).sendKeys("password"); driver.findElement(By.id("login-submit")).click(); assertThat(driver.findElement(By.cssSelector("h2")).getText()) .isEqualTo("title"); Configuration.browser = WebDriverRunner.CHROME; open("http://192.168.33.10/"); $("a[href=¥"/login¥"]").click(); $("#username").sendKeys("admin"); $("#password").sendKeys("password"); $("#login-submit").click(); $("h2").shouldHave(exactText("title")); 上記をSelenideで書くと、下記のように簡潔になる
16.
Selenium IDE https://www.selenium.dev/selenium-ide/
17.
Selenium IDE • Selenium
IDEはブラウザ操作の記録、実行が行えるブラウザの拡張 機能 • ChromeとFirefox版がある
18.
Selenium IDE • 昔のSelenium
IDEはFirefox版のみで、FirefoxがXUL/XPCOMベースの 拡張機能を廃止したことで、一度死んだ • 今のものは、まったく新しいものとして作られたもの • 当初は旧IDEからかなり機能が落ちるものだったが、コマンドも揃ってきて、 今現在では十分使えるものとなった • コマンド一覧 https://docs.seleniumhq.org/selenium-ide/docs/en/api/commands/
19.
Selenium IDE -
操作方法 • Selenium IDEを起動し、ブラウザ操作をレコーディング • Assertもブラウザ上で右クリックから追加することができる • for each や if文などの制御構文も書くことができる • コマンドとして直接入力することで複雑な動きも実現 • コマンド一覧 https://docs.seleniumhq.org/selenium-ide/docs/en/api/commands/ • 一連の操作を繰り返し実行できる • ファイル(*.side)としても保存できるので、再度開いて実行ということも可 能
20.
Selenium IDEでのデモ
21.
Selenium IDE -
selenium-side-runner • 保存したファイル(*.side)は、selenium-side-runner というコマンド ラインツールでも実行可能 • Node.js で書かれたツールになっている • https://www.selenium.dev/selenium-ide/docs/en/introduction/command- line-runner
22.
Selenium IDE と
WebDriver • Selenium IDEとSelenium WebDriverは全く異なる仕組みとなるが、 Selenium IDEの内容を、WebDriverでのコードとしてエクスポート することができる • 最初のうちは、IDEからエクスポートした コードを元にすると、WebDriverのコードが 書きやすいかも
23.
Selenium Grid https://www.selenium.dev/documentation/ja/grid/
24.
Selenium Grid • Selenium
Gridを使うことで、複数のリモートマシン上でSeleniumを 実行することができる • 異なるブラウザ、異なるOS上でのテストを一元管理しながら、複数のリ モートマシン上で実行できる • 並列で実行することで、テストの時間短縮を行える
25.
Selenium Grid 画像引用元: https://www.selenium.dev/documentation/ja/grid/grid_4/components_of_a_grid/
26.
Selenium以外のもの
27.
Selenium以外のブラウザ自動化ツール • Puppeteer https://github.com/puppeteer/puppeteer •
ChromeのDevTools Protocolを使って操作するNode.jsのライブラリ • DevTools Protocolを使うので、SeleniumのWebDriverより高機能なことが できるメリットが以前はあったが、Seleniumも最近DevTools Protocolを使 えるようになっている • https://www.selenium.dev/ja/documentation/webdriver/bidirectional/chrome_devtools/ • DevToolsのRecorderで操作をレコーディングして、Puppeteerのスクリプト としてエクスポートできる
28.
Selenium以外のブラウザ自動化ツール • Cypress https://www.cypress.io/ •
TestCafe https://testcafe.io/ • どっちもテストに特化したフレームワーク • オールインワン、準備が楽、学習コストが低い • プロキシやブラウザの拡張機能使って、ページ上でJavaScriptを実行するよ うな仕組み
29.
Selenium以外のブラウザ自動化ツール • Playwright https://playwright.dev/ •
テスト用のフレームワーク • SeleniumやPuppeteerと同様にブラウザ自体を操作する • Puppeteer と似たAPI • GoogleにいてPuppeteer作った人が、MicrosoftにいってPlaywrightを作っている • ブラウザ操作のレコーディングによるコード生成機能 • Trace Viewer • テスト実行時の画面状態などをGUI上でトレースできる • Node.js(JavaScript/TypeScript)だけでなく、Java、Python、.NET(C#等) など にも対応
30.
おわり ご清聴ありがとうございました
Download now