Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
onozaty
611 views
Selenium入門(2023年版)
社内勉強会でSeleniumについて話した資料です。
Technology
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Downloaded 10 times
1
/ 30
2
/ 30
3
/ 30
4
/ 30
5
/ 30
6
/ 30
7
/ 30
8
/ 30
9
/ 30
10
/ 30
11
/ 30
12
/ 30
13
/ 30
14
/ 30
15
/ 30
16
/ 30
17
/ 30
18
/ 30
19
/ 30
20
/ 30
21
/ 30
22
/ 30
23
/ 30
24
/ 30
25
/ 30
26
/ 30
27
/ 30
28
/ 30
29
/ 30
30
/ 30
More Related Content
PDF
こわくない Git
by
Kota Saito
PDF
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
by
hirokiky
PDF
新人Git/Github研修公開用スライド(その2)
by
pupupopo88
PDF
Gitはじめの一歩
by
Ayana Yokota
PDF
ノンプログラマでも今日から使える「Git」でバージョン管理
by
H2O Space. Co., Ltd.
PDF
SourceTreeで始めよう! Gitへの乗り換え指南
by
Kouji Matsui
PPTX
Power BI + OneDrive の最も簡単でかつ最も効率的な使い方のひとつ
by
Yugo Shimizu
PDF
Eclipseデバッガを活用するための31のtips
by
Hiroki Kondo
こわくない Git
by
Kota Saito
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
by
hirokiky
新人Git/Github研修公開用スライド(その2)
by
pupupopo88
Gitはじめの一歩
by
Ayana Yokota
ノンプログラマでも今日から使える「Git」でバージョン管理
by
H2O Space. Co., Ltd.
SourceTreeで始めよう! Gitへの乗り換え指南
by
Kouji Matsui
Power BI + OneDrive の最も簡単でかつ最も効率的な使い方のひとつ
by
Yugo Shimizu
Eclipseデバッガを活用するための31のtips
by
Hiroki Kondo
What's hot
PDF
dbt Cloud intro 日本語 202206
by
Paul Hallaste
PDF
画像認識モデルを作るための鉄板レシピ
by
Takahiro Kubo
PPTX
ICML2018読み会: Overview of NLP / Adversarial Attacks
by
Motoki Sato
PDF
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
by
Hironori Washizaki
PPTX
Python製BDDツールで自動化してみた
by
KeijiUehata1
PDF
はじめてのGit forデザイナー&コーダー
by
Saeko Yamamoto
PDF
実践 Git - 低レベルに知る Git
by
Youhei Nitta
PDF
新人Git/Github研修公開用スライド(その1)
by
pupupopo88
PDF
ブラウザのUIテストをしてみた話
by
Mitsushige Ishiguro
PDF
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
PDF
これからSpringを使う開発者が知っておくべきこと
by
土岐 孝平
PDF
【DL輪読会】Aspect-based Analysis of Advertising Appeals for Search Engine Advert...
by
Deep Learning JP
PDF
テストって何をするもの? - テストの5W1H -
by
Hiroshi Maekawa
PDF
F#入門 ~関数プログラミングとは何か~
by
Nobuhisa Koizumi
PDF
デザイナのためのGit入門
by
dsuke Takaoka
PDF
15分でわかるGit入門
by
to_ueda
PDF
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
by
Atsushi Tanaka
PPTX
오픈소스 개발을 위한 Git 사용법 실습
by
BJ Jang
PDF
[부스트캠프 Tech Talk] 신원지_Wandb Visualization
by
CONNECT FOUNDATION
PPTX
Power BI のいろいろな活用パターン
by
Yugo Shimizu
dbt Cloud intro 日本語 202206
by
Paul Hallaste
画像認識モデルを作るための鉄板レシピ
by
Takahiro Kubo
ICML2018読み会: Overview of NLP / Adversarial Attacks
by
Motoki Sato
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
by
Hironori Washizaki
Python製BDDツールで自動化してみた
by
KeijiUehata1
はじめてのGit forデザイナー&コーダー
by
Saeko Yamamoto
実践 Git - 低レベルに知る Git
by
Youhei Nitta
新人Git/Github研修公開用スライド(その1)
by
pupupopo88
ブラウザのUIテストをしてみた話
by
Mitsushige Ishiguro
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
これからSpringを使う開発者が知っておくべきこと
by
土岐 孝平
【DL輪読会】Aspect-based Analysis of Advertising Appeals for Search Engine Advert...
by
Deep Learning JP
テストって何をするもの? - テストの5W1H -
by
Hiroshi Maekawa
F#入門 ~関数プログラミングとは何か~
by
Nobuhisa Koizumi
デザイナのためのGit入門
by
dsuke Takaoka
15分でわかるGit入門
by
to_ueda
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
by
Atsushi Tanaka
오픈소스 개발을 위한 Git 사용법 실습
by
BJ Jang
[부스트캠프 Tech Talk] 신원지_Wandb Visualization
by
CONNECT FOUNDATION
Power BI のいろいろな活用パターン
by
Yugo Shimizu
Similar to Selenium入門(2023年版)
PDF
Selenium入門
by
onozaty
PDF
「Selenium実践入門」で学ぶテスト自動化の世界
by
Nozomi Ito
PPTX
Selenium2(web driver)
by
Tetsuya Hasegawa
PPTX
WEB開発動作テストの自動化 を行うSeleniumの紹介
by
Nobuhiko Futagami
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014
by
Nozomi Ito
PPTX
Selenium勉強会
by
Tatsunori Nishikori
PDF
初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~
by
ceres-inc
PPTX
Selenium2(web driver) ide編
by
Tetsuya Hasegawa
PPTX
Selenium IDE for primer
by
yasukoS
PPTX
20170809 start python_selenium
by
Hiroko Tamagawa
PDF
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
by
Hiroshi Toda
PDF
宣伝:SeleniumConf Tokyo 2019やりますよ!
by
Naruhiko Ogasawara
PPTX
Microsoft Excelでgoogle chromeを動かした話
by
洋史 東平
PPTX
Robot Framework (のSelenium2Libraryのお話)
by
泰 増田
PDF
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
by
Tadashi Nemoto
PDF
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
by
Masato Noguchi
PDF
201605 FA勉強会 seleniumスライド
by
秀平 高橋
PDF
201605 fa勉強会スライド
by
秀平 高橋
PPTX
Selenium 触ってみよう
by
Oda Shinsuke
PPTX
[Japan Selenium User Community in Remote] Intro
by
Woohyeok Kim
Selenium入門
by
onozaty
「Selenium実践入門」で学ぶテスト自動化の世界
by
Nozomi Ito
Selenium2(web driver)
by
Tetsuya Hasegawa
WEB開発動作テストの自動化 を行うSeleniumの紹介
by
Nobuhiko Futagami
海外のSeleniumカンファレンスではどんな発表がされているのか2014
by
Nozomi Ito
Selenium勉強会
by
Tatsunori Nishikori
初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~
by
ceres-inc
Selenium2(web driver) ide編
by
Tetsuya Hasegawa
Selenium IDE for primer
by
yasukoS
20170809 start python_selenium
by
Hiroko Tamagawa
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
by
Hiroshi Toda
宣伝:SeleniumConf Tokyo 2019やりますよ!
by
Naruhiko Ogasawara
Microsoft Excelでgoogle chromeを動かした話
by
洋史 東平
Robot Framework (のSelenium2Libraryのお話)
by
泰 増田
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
by
Tadashi Nemoto
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
by
Masato Noguchi
201605 FA勉強会 seleniumスライド
by
秀平 高橋
201605 fa勉強会スライド
by
秀平 高橋
Selenium 触ってみよう
by
Oda Shinsuke
[Japan Selenium User Community in Remote] Intro
by
Woohyeok Kim
More from onozaty
PDF
Dev Containers のススメ
by
onozaty
PDF
リモートワーク中に買って良かったものベスト3
by
onozaty
PDF
情報を表現するときのポイント
by
onozaty
PDF
チームで開発するための環境を整える
by
onozaty
PDF
40歳過ぎてもエンジニアでいるためにやっていること
by
onozaty
PDF
Java8から17へ
by
onozaty
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
Redmine issue assign notice plugin の紹介
by
onozaty
PDF
最近作ったもの
by
onozaty
PDF
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
by
onozaty
PDF
「伝わるチケット」の書き方
by
onozaty
PDF
View customize plugin for Redmineの紹介 (2019年版)
by
onozaty
PDF
View customize1.2.0の紹介
by
onozaty
PDF
WebSocketでカメラの映像を共有してみた
by
onozaty
PDF
Lombokの紹介
by
onozaty
PDF
Spring Bootを触ってみた
by
onozaty
PDF
30歳過ぎてもエンジニアでいるためにやったこと
by
onozaty
PDF
View customize pluginを使いこなす
by
onozaty
PDF
View Customize Pluginで出来ること
by
onozaty
PDF
技術書のススメ
by
onozaty
Dev Containers のススメ
by
onozaty
リモートワーク中に買って良かったものベスト3
by
onozaty
情報を表現するときのポイント
by
onozaty
チームで開発するための環境を整える
by
onozaty
40歳過ぎてもエンジニアでいるためにやっていること
by
onozaty
Java8から17へ
by
onozaty
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
Redmine issue assign notice plugin の紹介
by
onozaty
最近作ったもの
by
onozaty
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
by
onozaty
「伝わるチケット」の書き方
by
onozaty
View customize plugin for Redmineの紹介 (2019年版)
by
onozaty
View customize1.2.0の紹介
by
onozaty
WebSocketでカメラの映像を共有してみた
by
onozaty
Lombokの紹介
by
onozaty
Spring Bootを触ってみた
by
onozaty
30歳過ぎてもエンジニアでいるためにやったこと
by
onozaty
View customize pluginを使いこなす
by
onozaty
View Customize Pluginで出来ること
by
onozaty
技術書のススメ
by
onozaty
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