SlideShare a Scribd company logo
Submit Search
Upload
Selenium入門
Report
onozaty
Follow
•
0 likes
•
1,407 views
1
of
30
Selenium入門
•
0 likes
•
1,407 views
Download Now
Download to read offline
Report
Technology
社内勉強会でSeleniumについて話した資料です。
Read more
onozaty
Follow
Recommended
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
2.6K views
•
59 slides
ZabbixによるAWS監視のコツ
ShinsukeYokota
38.1K views
•
81 slides
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
10.1K views
•
31 slides
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
onozaty
9.9K views
•
61 slides
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
14.9K views
•
58 slides
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
Amazon Web Services Japan
53.7K views
•
124 slides
More Related Content
What's hot
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
10.9K views
•
31 slides
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
Amazon Web Services Japan
29.7K views
•
70 slides
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
13.3K views
•
22 slides
こわくない Git
Kota Saito
881.2K views
•
186 slides
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
Tadashi Nemoto
610 views
•
53 slides
Spring Boot + Netflix Eureka
心 谷本
41.2K views
•
83 slides
What's hot
(20)
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
•
10.9K views
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
Amazon Web Services Japan
•
29.7K views
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
•
13.3K views
こわくない Git
Kota Saito
•
881.2K views
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
Tadashi Nemoto
•
610 views
Spring Boot + Netflix Eureka
心 谷本
•
41.2K views
DockerとPodmanの比較
Akihiro Suda
•
47.7K views
AWS Black Belt Online Seminar AWS Direct Connect
Amazon Web Services Japan
•
229.3K views
[社内勉強会]ELBとALBと数万スパイク負荷テスト
Takahiro Moteki
•
29.4K views
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
•
58.1K views
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
•
91.1K views
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
Amazon Web Services Japan
•
68K views
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
•
51.1K views
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
•
56.6K views
AWS EC2 Eメール制限解除 - 逆引き(rDNS)設定 申請手順
Amazon Web Services Japan
•
5.8K views
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
•
3.2K views
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
日本マイクロソフト株式会社
•
1.1K views
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
•
628.4K views
AWS Lambdaのテストで役立つ各種ツール
Masaki Suzuki
•
1.8K views
現場で役に立たないsudoの使い方
(^-^) togakushi
•
33.5K views
Similar to Selenium入門
Selenium入門(2023年版)
onozaty
60 views
•
30 slides
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
Yuki Okada
3.4K views
•
19 slides
Selenium2(web driver)
Tetsuya Hasegawa
1.4K views
•
34 slides
Selenium IDE for primer
yasukoS
1.8K views
•
66 slides
WEB開発動作テストの自動化 を行うSeleniumの紹介
Nobuhiko Futagami
683 views
•
7 slides
Ja sst東北2013
勝信 今井
4K views
•
39 slides
Similar to Selenium入門
(20)
Selenium入門(2023年版)
onozaty
•
60 views
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
Yuki Okada
•
3.4K views
Selenium2(web driver)
Tetsuya Hasegawa
•
1.4K views
Selenium IDE for primer
yasukoS
•
1.8K views
WEB開発動作テストの自動化 を行うSeleniumの紹介
Nobuhiko Futagami
•
683 views
Ja sst東北2013
勝信 今井
•
4K views
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Nozomi Ito
•
16.5K views
JenkinsとSeleniumの活用事例
Takeshi Kondo
•
8.5K views
テスト自動化の様々な道具を使ってみた四方山話
haljik Seiji
•
5.6K views
Selenium
takeuchi-tk
•
1.5K views
Selenium2(web driver) ide編
Tetsuya Hasegawa
•
1.4K views
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
Nozomi Ito
•
22.4K views
ローカル環境のテスト自動化【勉強会資料】
株式会社キャッチアップ
•
799 views
Win7 * appium * androidで実機自動テストやってみた。
Naoto Kishino
•
5.4K views
5分で分かるselenium conference berlin 2017
Toshiya Komoda
•
587 views
エンタープライズ開発でのSelenium活用事例
isaac-otao
•
12.8K views
Selenium勉強会
Tatsunori Nishikori
•
1.7K views
20161218 selenium study4
Naoya Kojima
•
2.8K views
WebDriverで始めるUIスモークテスティング入門
Kohki Nakashima
•
1.5K views
Seleniumまとめ
Sora Kubota
•
30 views
More from onozaty
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
32.3K views
•
18 slides
Java8から17へ
onozaty
727 views
•
61 slides
Redmine issue assign notice plugin の紹介
onozaty
2.2K views
•
13 slides
最近作ったもの
onozaty
1.4K views
•
41 slides
「伝わるチケット」の書き方
onozaty
3.3K views
•
24 slides
View customize plugin for Redmineの紹介 (2019年版)
onozaty
10.9K views
•
26 slides
More from onozaty
(16)
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
•
32.3K views
Java8から17へ
onozaty
•
727 views
Redmine issue assign notice plugin の紹介
onozaty
•
2.2K views
最近作ったもの
onozaty
•
1.4K views
「伝わるチケット」の書き方
onozaty
•
3.3K views
View customize plugin for Redmineの紹介 (2019年版)
onozaty
•
10.9K views
View customize1.2.0の紹介
onozaty
•
5.2K views
WebSocketでカメラの映像を共有してみた
onozaty
•
5.2K views
Lombokの紹介
onozaty
•
2.5K views
Spring Bootを触ってみた
onozaty
•
2.7K views
30歳過ぎてもエンジニアでいるためにやったこと
onozaty
•
2.2K views
View Customize Pluginで出来ること
onozaty
•
51.7K views
技術書のススメ
onozaty
•
2.4K views
課題管理と情報共有のためのツール群
onozaty
•
3.3K views
お試し用のLinux環境を作る
onozaty
•
3.9K views
業務で使うIRC
onozaty
•
16.5K views
Recently uploaded
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
208 views
•
33 slides
JJUG CCC.pptx
Kanta Sasaki
6 views
•
14 slides
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
157 views
•
63 slides
テストコードってすごい.pptx
cistb220msudou
72 views
•
16 slides
さくらのひやおろし2023
法林浩之
76 views
•
58 slides
概念モデリングワークショップ 設計編
Knowledge & Experience
10 views
•
37 slides
Recently uploaded
(10)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
208 views
JJUG CCC.pptx
Kanta Sasaki
•
6 views
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
157 views
テストコードってすごい.pptx
cistb220msudou
•
72 views
さくらのひやおろし2023
法林浩之
•
76 views
概念モデリングワークショップ 設計編
Knowledge & Experience
•
10 views
01Booster Studio ご紹介資料
ssusere7a2172
•
209 views
概念モデリングワークショップ 基礎編
Knowledge & Experience
•
19 views
DLゼミ: MobileOne: An Improved One millisecond Mobile Backbone
harmonylab
•
41 views
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
•
6 views
Selenium入門
1.
Selenium入門 2021-02-12 社内勉強会 onozaty
2.
Seleniumとは • Webブラウザの操作を自動化するためのフレームワーク • 主にWebアプリケーションのE2Eテストに利用 •
ブラウザ操作をプログラムで行うことができる • テスト以外の自動化ツールでも利用 • 単一のAPIで様々なブラウザを同じように操作可能 • 各ブラウザ×各OSの組み合わせで同じことを実行できる Seleniumの公式サイト https://www.selenium.dev/ ドキュメントの日本語訳 https://www.selenium.dev/documentation/ja/
3.
Seleniumの昔と今
4.
Seleniumの昔と今 - Selenium
RC 初期(10年以上前)のSelenium 1は、Selenium RC(Remote Control)とい う仕組みを使っていた • プロキシのような形で、テスト対象のサイトにJavaScriptを埋め込 んで操作するような仕組み • ブラウザのセキュリティに起因する制約あり • アーキテクチャ的に複雑→安定しない要因に ※ Selenium Core、Selenium RCといったキーワードが出てきたら、昔の情報なので要注意
5.
Seleniumの昔と今 - Selenium
WebDriver Selenium 2からWebDriverを使うように • WebDriverを使うことで、直接ブラウザを操作できるようになっ た • Selenium RCの時のようなセキュリティ制限を受けなくなった • シンプルな構成となった→安定するように • 現在ではW3Cで標準化されており、各ブラウザ毎にWebDriverの 実装が用意されている • 主にブラウザベンダが提供している
6.
Seleniumを構成する要素 • Selenium WebDriver •
Selenium IDE • Selenium Grid
7.
Selenium WebDriver https://www.selenium.dev/documentation/ja/webdriver/
8.
Selenium WebDriver • WebDriverを使うことで、ブラウザ操作をプログラムで行うことが できる 画像引用元:
https://www.selenium.dev/documentation/ja/webdriver/understanding_the_components/ 各プログラミング言語(Java、 Python、C#、Ruby、JavaScriptな ど)のバインディングが提供されて いる。 PHPのようにSelenium公式にはな くて、他から提供されているもの もあり。 各ブラウザ(Chrome、Firefox、 Edgeなど)に対応したDriverが提供 されている。 Web APIとして要求を受け付けて、 ブラウザを操作する。
9.
Selenium WebDriver -
利用方法 • 実行する際には、各ブラウザ用のDriverを入手しパス等に設定する • ブラウザ毎の入手元の情報は下記にて • https://www.selenium.dev/documentation/en/webdriver/driver_requirements/#quick- reference
10.
Selenium WebDriver -
利用方法 System.setProperty("webdriver.chrome.driver", "C:¥¥selenium¥¥chromedriver.exe"); 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(); JavaだとシステムプロパティとしてダウンロードしたDriverのパスを設定 WebDriverのインスタンスを生成し、そのインスタンスを通して操作 ※今後出てくるコードは全てJavaでのコード
11.
Selenium WebDriver -
ダウンロードの手間 • 各ブラウザのDriverをダウンロードしてきて、パス等に設定するの は結構手間 • ブラウザのバージョンが上がる毎にDriverをダウンロードしてこなければな らない • 動かないと思ったら、インストールされているブラウザのバージョンと Driverがアンマッチになっているといったことがよくある
12.
Selenium WebDriver -
WebDriverManager • WebDriverManagerを使うと、インストールされているブラウザの バージョンに応じたDriverをダウンロードして、システムプロパ ティに設定してくれる • https://github.com/bonigarcia/webdrivermanager • 下記1行で終わり WebDriverManager.chromedriver().setup();
13.
Selenium WebDriverでのデモ https://github.com/onozaty/selenium-sandbox/tree/main/selenium-junit
14.
WebDriverを使いやすくしたもの • Selenium WebDriver自体は、テスト用というより、ブラウザ操作の ためのもの •
コードが冗長になりがち • テストランナーやアサーションは別途用意する必要がある
15.
WebDriverを使いやすくしたもの • WebDriverを内部で使いながら、テストを書きやすくするためのラ イブラリがいくつもある • Selenide
https://selenide.org/ • Java • Geb https://gebish.org/ • Groovy • WebdriverIO https://webdriver.io/ • Node.js
16.
Selenide System.setProperty("webdriver.chrome.driver", "C:¥¥selenium¥¥chromedriver.exe"); 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で書くと、下記のように簡潔になる
17.
Selenium IDE https://www.selenium.dev/selenium-ide/
18.
Selenium IDE • Selenium
IDEはブラウザ操作の記録、実行が行えるブラウザの拡張 機能 • ChromeとFirefox版がある
19.
Selenium IDE • 昔のSelenium
IDEはFirefox版のみで、FirefoxがXUL/XPCOMベースの 拡張機能を廃止したことで、一度死んだ • 今のものは、まったく新しいものとして作られたもの • 当初は旧IDEからかなり機能が落ちるものだったが、コマンドも揃ってきて、 今現在では十分使えるものとなった • コマンド一覧 https://docs.seleniumhq.org/selenium-ide/docs/en/api/commands/
20.
Selenium IDE -
操作方法 • Selenium IDEを起動し、ブラウザ操作をレコーディング • Assertもブラウザ上で右クリックから追加することができる • for each や if文などの制御構文も書くことができる • コマンドとして直接入力することで複雑な動きも実現 • コマンド一覧 https://docs.seleniumhq.org/selenium-ide/docs/en/api/commands/ • 一連の操作を繰り返し実行できる • ファイル(*.side)としても保存できるので、再度開いて実行ということも可 能
21.
Selenium IDEでのデモ
22.
Selenium IDE -
selenium-side-runner • 保存したファイル(*.side)は、selenium-side-runner というコマンド ラインツールでも実行可能 • Node.js で書かれたツールになっている • https://www.selenium.dev/selenium-ide/docs/en/introduction/command- line-runner
23.
Selenium IDE と
WebDriver • Selenium IDEとSelenium WebDriverは全く異なる仕組みとなるが、 Selenium IDEの内容を、WebDriverでのコードとしてエクスポート することができる • 最初のうちは、IDEからエクスポートした コードを元にすると、WebDriverのコードが 書きやすいかも
24.
Selenium Grid https://www.selenium.dev/documentation/ja/grid/
25.
Selenium Grid • Selenium
Gridを使うことで、複数のリモートマシン上でSeleniumを 実行することができる • 異なるブラウザ、異なるOS上でのテストを一元管理しながら、複数のリ モートマシン上で実行できる • 並列で実行することで、テストの時間短縮を行える
26.
Selenium Grid 画像引用元: https://www.selenium.dev/documentation/ja/grid/grid_4/components_of_a_grid/
27.
Selenium以外のもの
28.
Selenium以外のブラウザ自動化ツール • Puppeteer https://github.com/puppeteer/puppeteer •
ChromeのDevTools Protocolを使って操作するNode.jsのライブラリ • DevTools Protocolを使うので、WebDriverより高機能なことができる • ChromeDriverも内部的にはDevTools Protocolを使っているが、WebDriverとして定義さ れている部分しか現状は触れない • 次のSelenium 4でDevToolsをネイティブサポートする予定
29.
Selenium以外のブラウザ自動化ツール • Cypress https://www.cypress.io/ •
TestCafe https://devexpress.github.io/testcafe/ • どっちもテストに特化したフレームワーク • オールインワン、準備が楽、学習コストが低い • プロキシやブラウザの拡張機能使って、ページ上でJavaScriptを実行するよ うな仕組み
30.
おわり ご清聴ありがとうございました