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
Submit search
EN
Uploaded by
Yuki Okada
PDF, PPTX
13,038 views
【Camphor ×サイボウズ】selenium勉強会
2014/12/14に開催した、京都IT系学生コミュニティCAMPHOR-とサイボウズの合同勉強会の資料です。 https://atnd.org/events/59820
Software
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 51
2
/ 51
3
/ 51
4
/ 51
5
/ 51
6
/ 51
7
/ 51
8
/ 51
9
/ 51
10
/ 51
11
/ 51
12
/ 51
13
/ 51
14
/ 51
15
/ 51
16
/ 51
17
/ 51
18
/ 51
19
/ 51
20
/ 51
21
/ 51
22
/ 51
23
/ 51
24
/ 51
25
/ 51
26
/ 51
27
/ 51
28
/ 51
29
/ 51
30
/ 51
31
/ 51
32
/ 51
33
/ 51
34
/ 51
35
/ 51
36
/ 51
37
/ 51
38
/ 51
39
/ 51
40
/ 51
41
/ 51
42
/ 51
43
/ 51
44
/ 51
45
/ 51
46
/ 51
47
/ 51
48
/ 51
49
/ 51
50
/ 51
51
/ 51
More Related Content
PDF
Mojoliciousでつくる! Webアプリ入門
by
Yusuke Wada
PDF
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
by
Toshiaki Maki
PDF
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
by
Toshiaki Maki
PDF
こんなに使える!今どきのAPIドキュメンテーションツール
by
dcubeio
ODP
今流行りのウェブアプリ開発環境Yeoman
by
tomo_masakura
PDF
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
by
松田 千尋
PDF
脱・独自改造! GebでWebDriverをもっとシンプルに
by
Hiroko Tamagawa
PDF
【B-1】kintoneでお手軽コールセンター!
by
Sakae Saito
Mojoliciousでつくる! Webアプリ入門
by
Yusuke Wada
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
by
Toshiaki Maki
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
by
Toshiaki Maki
こんなに使える!今どきのAPIドキュメンテーションツール
by
dcubeio
今流行りのウェブアプリ開発環境Yeoman
by
tomo_masakura
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
by
松田 千尋
脱・独自改造! GebでWebDriverをもっとシンプルに
by
Hiroko Tamagawa
【B-1】kintoneでお手軽コールセンター!
by
Sakae Saito
What's hot
PDF
Spring Bootで変わる Javaアプリ開発! #jsug
by
Toshiaki Maki
PDF
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
by
Yoichi KIKUCHI
PDF
Laravel5を使って開発してみた
by
Takeo Noda
PDF
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
by
Tomoki Oyamatsu
PDF
laravel x モバイルアプリ
by
Masaki Oshikawa
ODP
HTML5 開発環境の紹介
by
tomo_masakura
PPTX
Dot netconf2017 - VS拡張
by
Tatsuya Ishikawa
PDF
Gradle布教活動
by
Nemoto Yusuke
PDF
Service Workerとの戦い ~ 実装編 ~ #scripty03
by
Yahoo!デベロッパーネットワーク
PPTX
メタな感じのプログラミング(プロ生 + わんくま 071118)
by
Tatsuya Ishikawa
PDF
Service workerとwebプッシュ通知
by
zaru sakuraba
PDF
Gradleどうでしょう
by
Takuma Watabiki
PDF
今、最もイケてるPHPフレームワークLaravel4
by
アシアル株式会社
PPTX
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
by
Naoki Iwami
PPTX
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
by
Nobuhiro Sue
PDF
Gradle handson
by
Nemoto Yusuke
ODP
HTML5 アプリ開発
by
tomo_masakura
PDF
Java web application testing
by
Tokuhiro Matsuno
PDF
Awsで実現するseleniumテスト高速術
by
finoue
PDF
What makes Geb groovy?
by
Youtarou TAKAHASHI
Spring Bootで変わる Javaアプリ開発! #jsug
by
Toshiaki Maki
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
by
Yoichi KIKUCHI
Laravel5を使って開発してみた
by
Takeo Noda
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
by
Tomoki Oyamatsu
laravel x モバイルアプリ
by
Masaki Oshikawa
HTML5 開発環境の紹介
by
tomo_masakura
Dot netconf2017 - VS拡張
by
Tatsuya Ishikawa
Gradle布教活動
by
Nemoto Yusuke
Service Workerとの戦い ~ 実装編 ~ #scripty03
by
Yahoo!デベロッパーネットワーク
メタな感じのプログラミング(プロ生 + わんくま 071118)
by
Tatsuya Ishikawa
Service workerとwebプッシュ通知
by
zaru sakuraba
Gradleどうでしょう
by
Takuma Watabiki
今、最もイケてるPHPフレームワークLaravel4
by
アシアル株式会社
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
by
Naoki Iwami
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
by
Nobuhiro Sue
Gradle handson
by
Nemoto Yusuke
HTML5 アプリ開発
by
tomo_masakura
Java web application testing
by
Tokuhiro Matsuno
Awsで実現するseleniumテスト高速術
by
finoue
What makes Geb groovy?
by
Youtarou TAKAHASHI
Viewers also liked
PDF
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
by
Nozomi Ito
PPTX
アジャイルメトリクス実践ガイド
by
Hiroyuki Ito
PPTX
kintoneの開発プロセスとプロジェクト管理ツール
by
Yuki Okada
PDF
Bootstrapにちょい足しアニメーション@春のJavascript祭り
by
Masayuki Abe
PPTX
UXを損ねる静的コンテンツ配信アンチパターン7選
by
Yuki Okada
PDF
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
by
POStudy
PDF
WebSocketのキホン
by
You_Kinjoh
PPTX
【STAC2017】テスト自動化システム 成長記
by
友隆 浅黄
PPTX
kintoneチームを支えるSeleniumテスト
by
Jumpei Miyata
PDF
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
by
kotaro_hirayama
PPTX
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
by
civicpg
PDF
kintoneの検索高速化への取り組み
by
Ryo Mitoma
PPTX
Chatbot for kintone Apps on Facebook Messenger
by
Phan Anh Nguyen
PDF
ゲーム情報設計における「霧」との戦い
by
裕哉 駒場
PDF
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
by
Yuki Okada
PPTX
Pythonでwebdriver
by
株式会社 システムヨシイ
PPTX
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
by
Yuki Okada
PDF
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
by
Y Watanabe
PPTX
エンジニアが働きたい場所で働けるために、チームに必要なこと
by
Yuki Okada
PPTX
Selenium Conference 2015 参加報告
by
Jumpei Miyata
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
by
Nozomi Ito
アジャイルメトリクス実践ガイド
by
Hiroyuki Ito
kintoneの開発プロセスとプロジェクト管理ツール
by
Yuki Okada
Bootstrapにちょい足しアニメーション@春のJavascript祭り
by
Masayuki Abe
UXを損ねる静的コンテンツ配信アンチパターン7選
by
Yuki Okada
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
by
POStudy
WebSocketのキホン
by
You_Kinjoh
【STAC2017】テスト自動化システム 成長記
by
友隆 浅黄
kintoneチームを支えるSeleniumテスト
by
Jumpei Miyata
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
by
kotaro_hirayama
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
by
civicpg
kintoneの検索高速化への取り組み
by
Ryo Mitoma
Chatbot for kintone Apps on Facebook Messenger
by
Phan Anh Nguyen
ゲーム情報設計における「霧」との戦い
by
裕哉 駒場
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
by
Yuki Okada
Pythonでwebdriver
by
株式会社 システムヨシイ
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
by
Yuki Okada
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
by
Y Watanabe
エンジニアが働きたい場所で働けるために、チームに必要なこと
by
Yuki Okada
Selenium Conference 2015 参加報告
by
Jumpei Miyata
Similar to 【Camphor ×サイボウズ】selenium勉強会
PDF
Selenium入門
by
onozaty
PDF
JenkinsとSeleniumの活用事例
by
Takeshi Kondo
PPTX
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
by
洋史 東平
PDF
Selenium入門(2023年版)
by
onozaty
PPTX
Selenium2(web driver)
by
Tetsuya Hasegawa
PPTX
Microsoft Excelでgoogle chromeを動かした話
by
洋史 東平
PPTX
Selenium2(web driver) ide編
by
Tetsuya Hasegawa
PPTX
Wagby Testing Framework
by
Yoshinori Nie
PDF
サルから進化(?)Selenium WebDriverの自動実行プログラム
by
洋史 東平
PDF
「Selenium実践入門」で学ぶテスト自動化の世界
by
Nozomi Ito
PPTX
Selenium IDE for primer
by
yasukoS
PPTX
WEB開発動作テストの自動化 を行うSeleniumの紹介
by
Nobuhiko Futagami
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014
by
Nozomi Ito
PPTX
20170809 start python_selenium
by
Hiroko Tamagawa
PPTX
ローカル環境のテスト自動化【勉強会資料】
by
株式会社キャッチアップ
PPTX
TDC20111031_Groovy_Geb
by
Nobuhiro Sue
PDF
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
PPTX
Selenium
by
takeuchi-tk
PPTX
Taming robotframework
by
泰 増田
PDF
WebDriverで遊ぼう
by
洋史 東平
Selenium入門
by
onozaty
JenkinsとSeleniumの活用事例
by
Takeshi Kondo
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
by
洋史 東平
Selenium入門(2023年版)
by
onozaty
Selenium2(web driver)
by
Tetsuya Hasegawa
Microsoft Excelでgoogle chromeを動かした話
by
洋史 東平
Selenium2(web driver) ide編
by
Tetsuya Hasegawa
Wagby Testing Framework
by
Yoshinori Nie
サルから進化(?)Selenium WebDriverの自動実行プログラム
by
洋史 東平
「Selenium実践入門」で学ぶテスト自動化の世界
by
Nozomi Ito
Selenium IDE for primer
by
yasukoS
WEB開発動作テストの自動化 を行うSeleniumの紹介
by
Nobuhiko Futagami
海外のSeleniumカンファレンスではどんな発表がされているのか2014
by
Nozomi Ito
20170809 start python_selenium
by
Hiroko Tamagawa
ローカル環境のテスト自動化【勉強会資料】
by
株式会社キャッチアップ
TDC20111031_Groovy_Geb
by
Nobuhiro Sue
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
Selenium
by
takeuchi-tk
Taming robotframework
by
泰 増田
WebDriverで遊ぼう
by
洋史 東平
More from Yuki Okada
PPTX
エンジニア組織づくり5年。見えてきた関西Web界隈のええとこ、あかんとこ - Developers Summit 2019 KANSAI
by
Yuki Okada
PPTX
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
by
Yuki Okada
PPTX
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
by
Yuki Okada
PPTX
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
by
Yuki Okada
PDF
Web開発の技術選び、 好き嫌いでやってませんか 〜技術選びで注目すべきポイントとは〜
by
Yuki Okada
PPTX
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
by
Yuki Okada
PDF
拠点をまたいだリモートスクラム・リモートモブプロ実践事例 - Developers Summit 2018 FUKUOKA
by
Yuki Okada
エンジニア組織づくり5年。見えてきた関西Web界隈のええとこ、あかんとこ - Developers Summit 2019 KANSAI
by
Yuki Okada
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
by
Yuki Okada
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
by
Yuki Okada
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
by
Yuki Okada
Web開発の技術選び、 好き嫌いでやってませんか 〜技術選びで注目すべきポイントとは〜
by
Yuki Okada
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
by
Yuki Okada
拠点をまたいだリモートスクラム・リモートモブプロ実践事例 - Developers Summit 2018 FUKUOKA
by
Yuki Okada
【Camphor ×サイボウズ】selenium勉強会
1.
【CAMPHOR- × サイボウズ】 Selenium
勉強会 2014/12/14 CAMPHOR- HOUSE ハッシュタグ #cybozu
2.
自己紹介 • 岡田勇樹 @y_okady •
サイボウズ新卒8年目 31歳 • 神戸大学大学院 情報知能工学専攻 • kintone開発チーム リーダー • 大阪開発部@グランフロント 副部長
3.
Agenda • サイボウズとkintoneのご紹介 • Seleniumの解説 •
Seleniumハンズオン • 自動テストでSeleniumを使うために必要なこと • 最後に
4.
サイボウズとkintone
5.
サイボウズ • 「グループウェア」のメーカー • 東京、松山、大阪、上海、ベトナムで開発 •
バリバリ開発してる会社 • どんなものを作るか考えるのも実際に作るのも全部内製 • インフラからWebアプリケーションまで全部内製 • 特徴的な人事制度 • 会社辞めてもいつでも戻ってきていいよ • 台風の日はできるだけ在宅勤務してね • 国内シェアNo.1、kintoneで世界一を目指してます
6.
kintone
7.
業務アプリ?Webデータベー ス?
8.
こんな時どうする • チームでアイデアを共有する「アイデアボッ クス」を作りたい時、あなたならどうします か?
9.
アイデアボックスを作ろう • やっぱWebアプリでしょ • サーバー用意しなきゃ •
言語とかフレームワークとかどうしよっかな • データベースの設計しなきゃ • 何日あれば作れるかな…
10.
kintoneの場合
11.
そろそろSeleniumの話が聞きたいなー
12.
実はもう始まってます
13.
実はさっきの動画 • kintoneをSeleniumで操作したんです! • テキストボックスへの入力も •
ラジオボタンの選択も • リンクのクリックも • ドラッグ&ドロップも • Seleniumってなんかすごそう!!
14.
Selenium
15.
Seleniumとは • Webブラウザの操作を自動化するツール • Firefox拡張のSelenium
IDEが一世を風靡 • プログラミング不要 • UIを変更するとテストがすぐ落ちる • Firefoxでしか動かない • 近年Selenium WebDriverが頭角を現す
16.
Seleniumでできること • URLを指定してWebページを開く • DOMの要素を取得する •
要素に対して何かする • クリックする • 文字を取り出す • 文字を入力する • ドラッグ&ドロップする
17.
Selenium WebDriver JavaScript ブラウザ/OS API 昔のSelenium Selenium WebDriver
18.
言語バインディング • 公式 • 非公式
19.
ハンズオン
20.
ハンズオンの流れ 1.インストール 2.動作確認 3.CAMPHOR-のWebサイトを操作 4.Google検索ページを操作
21.
Seleniumのインストール • Python • Ruby •
JavaScript (Node.js) • Java $ pip install selenium $ gem install selenium-webdriver $ npm install -g selenium-webdriver $ curl -O http://selenium-release.storage.googleapis.com/2.44/selenium- java-2.44.0.zip && unzip selenium-java-2.44.0.zip http://www.seleniumhq.org/
22.
Driverのダウンロード • Chrome (Mac) •
Chrome (Windows) • Firefoxは不要 $ curl -O http://chromedriver.storage.googleapis.com/2.12/ chromedriver_mac32.zip && unzip chromedriver_mac32.zip $ curl -O http://chromedriver.storage.googleapis.com/2.12/ chromedriver_win32.zip && unzip chromedriver_win32.zip
23.
動作確認 • サイボウズのWebサイトを開いてみよう • 処理の流れ •
Seleniumをimport/require • Firefox/Chrome Driverインスタンスを生成 • getメソッドにURLを指定してWebサイトを開く • quitメソッドで終了 http://cybozu.co.jp
24.
動作確認 • 本家ドキュメント • 処理の流れ •
Seleniumをimport/require • Firefox/Chrome Driverインスタンスを生成 • getメソッドにURL (http://cybozu.co.jp) を指定 • quitメソッドで終了 [Documentation] > [Introducing the Selenium-WebDriver API by Example] http://www.seleniumhq.org/ Programming Language Preference を選択
25.
サンプルコード (Python) from selenium
import webdriver! ! driver = webdriver.Firefox()! #driver = webdriver.Chrome('./chromedriver')! ! driver.get("http://cybozu.co.jp")! driver.quit() $ python 1.py
26.
サンプルコード (Ruby) require 'selenium-webdriver'! ! driver
= Selenium::WebDriver.for :firefox! #driver = Selenium::WebDriver.for :chrome! ! driver.get “http://cybozu.co.jp”! driver.quit $ ruby 1.rb
27.
サンプルコード (JavaScript) var firefox
= require('selenium-webdriver/firefox');! //var chrome = require('selenium-webdriver/chrome');! ! var driver = new firefox.Driver();! //var driver = new chrome.Driver();! ! driver.get('http://cybozu.co.jp');! driver.quit(); $ node 1.js
28.
サンプルコード (Java) import org.openqa.selenium.WebDriver;! import
org.openqa.selenium.chrome.ChromeDriver;! import org.openqa.selenium.firefox.FirefoxDriver;! ! public class SeleniumIntro {! public static void main(String[] args) {! WebDriver driver = new FirefoxDriver();! //WebDriver driver = new ChromeDriver();! ! driver.get("http://cybozu.co.jp");! driver.quit();! }! } $ javac -cp selenium-2.44.0/selenium-java-2.44.0.jar Selenium1.java! $ java -cp .:selenium-2.44.0/selenium-java-2.44.0.jar:selenium-2.44.0/libs/* Selenium1
29.
CAMPHOR-のWebサイトを操作 • トップページ (https://camph.net)
で 「CAMPHOR-について詳しく見る」をクリッ クすると、About (https://camph.net/about/) に遷移することを確認する
30.
CAMPHOR-のWebサイトを操作 • WebDriver APIドキュメント •
Python: http://selenium-python.readthedocs.org/en/latest/api.html • Ruby: http://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium/ WebDriver • JavaScript: http://selenium.googlecode.com/git/docs/api/javascript/ module_selenium-webdriver.html • Java: https://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/ selenium/WebDriver.html • 処理の流れ • driver.findElementとBy.linkTextでリンク要素を取得 • リンク要素をクリック
31.
サンプルコード (Python) # -*-
coding: utf-8 -*-! from selenium import webdriver! from selenium.webdriver.common.by import By! ! driver = webdriver.Firefox()! #driver = webdriver.Chrome('./chromedriver')! ! driver.get("https://camph.net")! ! link = driver.find_element(By.LINK_TEXT, u"CAMPHOR-について詳しく見る");! link.click()! ! print driver.current_url == "https://camph.net/about/"! ! driver.quit()
32.
サンプルコード (Ruby) require 'selenium-webdriver'! ! driver
= Selenium::WebDriver.for :firefox! #driver = Selenium::WebDriver.for :chrome! ! driver.get "https://camph.net"! ! link = driver.find_element(:link_text, "CAMPHOR-について詳しく見る")! link.click! ! print driver.current_url == "https://camph.net/about/"! ! driver.quit
33.
サンプルコード (JavaScript) var By
= require('selenium-webdriver').By;! var firefox = require('selenium-webdriver/firefox');! //var chrome = require('selenium-webdriver/chrome');! ! var driver = new firefox.Driver();! //var driver = new chrome.Driver();! ! driver.get('https://camph.net');! ! var link = driver.findElement(By.linkText('CAMPHOR-について詳しく見る'));! link.click();! ! driver.getCurrentUrl().then(function(url) {! console.log(url == 'https://camph.net/about/');! });! ! driver.quit();
34.
サンプルコード (Java) import org.openqa.selenium.By;! import
org.openqa.selenium.WebDriver;! import org.openqa.selenium.WebElement;! import org.openqa.selenium.chrome.ChromeDriver;! import org.openqa.selenium.firefox.FirefoxDriver;! ! public class Selenium2 {! public static void main(String[] args) {! WebDriver driver = new FirefoxDriver();! //WebDriver driver = new ChromeDriver();! ! driver.get("https://camph.net");! ! WebElement link = driver.findElement(By.linkText("CAMPHOR-について詳しく見る"));! link.click();! ! System.out.println(driver.getCurrentUrl().equals("https://camph.net/about/"));! ! driver.quit();! }! }
35.
Google検索ページを操作 • 「サイボウズ」を検索した時に表示される、関連キーワード 一覧を出力する • 処理の流れ •
検索ボックスに「サイボウズ」を入力 • フォームをsubmit • 検索結果画面が表示されるまで待つ • 関連キーワードの要素からリンク一覧を取得
36.
サンプルコード (Python) # -*-
coding: utf-8 -*-! from selenium import webdriver! from selenium.webdriver.common.by import By! from selenium.webdriver.support.ui import WebDriverWait! from selenium.webdriver.support import expected_conditions! ! driver = webdriver.Firefox()! #driver = webdriver.Chrome('./chromedriver')! ! driver.get("http://www.google.com")! ! input = driver.find_element(By.NAME, "q")! input.send_keys(u"サイボウズ")! input.submit()! ! WebDriverWait(driver, 10).until(expected_conditions.title_is(u”サイボウズ - Google 検索"))! ! extra = driver.find_element(By.ID, "extrares")! links = extra.find_elements(By.TAG_NAME, "a")! for link in links:! print link.text! ! driver.quit()
37.
サンプルコード (Ruby) require 'selenium-webdriver'! ! driver
= Selenium::WebDriver.for :firefox! #driver = Selenium::WebDriver.for :chrome! ! driver.get "http://www.google.com"! ! input = driver.find_element(:name, "q")! input.send_keys("サイボウズ")! input.submit()! ! wait = Selenium::WebDriver::Wait.new(:timeout => 10)! wait.until {! driver.title == “サイボウズ - Google 検索“! }! extra = driver.find_element(:id, "extrares")! links = extra.find_elements(:tag_name, "a")! links.each {|link|! puts link.text! }! ! driver.quit
38.
サンプルコード (JavaScript) var By
= require('selenium-webdriver').By;! var firefox = require('selenium-webdriver/firefox');! //var chrome = require('selenium-webdriver/chrome');! ! var driver = new firefox.Driver();! //var driver = new chrome.Driver();! ! driver.get('http://www.google.com');! var input = driver.findElement(By.name('q'));! input.sendKeys('サイボウズ');! input.submit();! ! driver.wait(function() {! return driver.getTitle().then(function(title) {! return title == ‘サイボウズ - Google 検索‘;! });! }, 10000);! var extra = driver.findElement(By.id('extrares'));! extra.findElements(By.tagName('a')).then(function(links) {! for (var i = 0; i < links.length; i++) {! links[i].getText().then(function(text) {! console.log(text);! });! }! });! ! driver.quit();
39.
サンプルコード (Java) import java.util.List;! import
org.openqa.selenium.By;! import org.openqa.selenium.WebDriver;! import org.openqa.selenium.WebElement;! import org.openqa.selenium.chrome.ChromeDriver;! import org.openqa.selenium.firefox.FirefoxDriver;! import org.openqa.selenium.support.ui.ExpectedCondition;! import org.openqa.selenium.support.ui.WebDriverWait;! ! public class Selenium3 {! public static void main(String[] args) {! WebDriver driver = new FirefoxDriver();! //WebDriver driver = new ChromeDriver();! ! driver.get("http://google.com");! ! WebElement input = driver.findElement(By.name("q"));! input.sendKeys("サイボウズ");! input.submit();! ! (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {! public Boolean apply(WebDriver d) {! return d.getTitle().equals("サイボウズ - Google 検索");! }! });! ! WebElement extra = driver.findElement(By.id("extrares"));! List<WebElement> links = extra.findElements(By.tagName("a"));! for (WebElement link : links) {! System.out.println(link.getText());! }! ! driver.quit();! }! }
40.
Seleniumで自動テスト
41.
テストフレームワーク • xUnitなど • 自動テストをやるなら必須
42.
PageObjectデザインパターン • テスト対象となる画面やコンポーネントを PageObjectと呼ばれるクラスで共通化 • テストメソッド内にByを書かなくて済む •
UI変更に強くなる • Seleniumテストをいっぱい書くなら必須
43.
RemoteWebDriver • テストを実行するマシンとブラウザを操作す るマシンを分ける • 複数のOSやブラウザでテストをするなら必須
44.
Selenium Grid • 複数のOSやブラウザでのテストを並列化する •
Seleniumテストをめっちゃいっぱい書くなら 必須
45.
Jenkins • 継続的インテグレーションツール • Gitにpushされた時に自動的にSeleniumテス トを実行したりできる •
大人数で開発したり、より高い品質を求める なら必須
46.
kintoneとSelenium • テストケースは1,000個以上 • 並列数は36 •
実行時間は約30分 • kintoneはSeleniumに支えられてます!
47.
最後に
48.
まだまだ伝えたいことがある! • PageObjectパターンでUI変更に強いテストを書こう • RemoteWebDriverを使っていろんなブラウザでテス トしよう •
Selenium Gridを使って大規模運用しよう • Jenkinsで自動テストを自動実行しよう
49.
次回Selenium勉強会 • 今のところ未定! • でもやりたい •
発表者募集中です • もちろん参加者募集中です • こんなことやりたい!というのがあればアン ケートに記入お願いします
50.
本当に最後に • サイボウズで一緒にSeleniumテストを書いてくれる仲間を募集中です! • テスト自動化しておふくろを楽にしたい方 •
テスト自動化して彼女を作りたい方 • テスト自動化して人生を豊かにしたい方 • 勉強会の出席を自動化したい方 • テスト自動化してモテたい方 • テスト自動化してみんなを幸せにしたい方 • 学校のテストでいい点取りたい方
51.
ありがとうございました! 懇親会もよろしくお願いします!!
Download