Selenium Web Driver使い方 (java)
2015/04/19
ここが凄い丁寧で分かりやすい。
http://d.hatena.ne.jp/suzukij/20110828/1314549996
試してみました。
動かすまでメモ
自分の場合はEclipse上で実施。
以前書いたように、
javaプロジェクトを作って、libフォルダを作って、そこに「selenium–java-2.23.0.jar」を追加。
- jarはhttp://seleniumhq.org/download/の「Selenium Client Drivers」から取得。
jarを右クリックして、「ビルド>ビルドパスに追加」を実施。
上記サイトのサンプルをコピペして、「Ctr + Shft + o」でimportをごそっと追加して、やってみたら、下記のエラーが発生。
java.lang.ClassNotFoundException: com.google.common.base.Function
うーんと思って調べたら、SeleniumServerもビルドパスに追加してあげないといけないらしい。
ということで追加したら動きました。
これは楽だ。
ドライバの変更について
- InternetExplorerDriver(エラーを吐きつつ動いた。)
- ChromeDriver (exeファイルが必要らしい。)
- OperaDriver
- AndroidDriver
- IPhoneDriver
- HtmlUnitDriver
IE・Chrome・FFで試したけど、とりあえずFFだけがまともに動く。
FFとの親和性がやっぱり高いのね。
利用のイメージ
例えばテキストを入力する場合は
1 2 |
WebElement element = driver.findElement(By.name("tag名")); element.sendKeys("入力文言"); |
clickする場合は
1 |
driver.findElement(By.name("tag名")).click(); |
「By」クラスでHTML要素を取得し、driverクラスのfindElement()メソッドで要素(By型)を取得して、そのメソッドsendKeys()や、click()を実行してあげる感じ。
で、「By」でHTML要素を指定する方法は色々ある。下記公式参照。
あと、単純に処理をつなげていくと、処理が失敗することがあるので、ちょくちょくsleepさせてあげないと上手くいきません。
自分の場合は1操作毎にsleepを入れました。
その他気になったこと。
- これはDOMと呼ばないという認識で良いんだよね..
- 連続した画面操作の場合とか、メソッドの分け方やクラスの分け方をどういう単位でやっていけばよいのかなぁと悩み中。
関連記事
-
-
どうしてもSelenium-IDEが使いたい そのためには古いFireFoxが欲しい!!
(2015/03/11補足) 最近のfirefoxは無理くり入れられる。下記から …
-
-
【Selenium】【ruby】Casperjsでどうも取得できないページがあるので…Selenium-webdriver!!
casperでダメなサイトがあったので…webdriverを試してみ …
-
-
Seleniumを覚える Selenium-RCの実行
Slenium公式のドキュメントを見ていたら分からなくなったので、別サイトを参考 …
-
-
Seleniumを覚える エラー対応(Couldn't proxy to http://xxxxxxx/ because host not found)
前回やっとこさSeleniumを動かせたので、ケース …