Seleniumを覚える Selenium-RCの実行
2015/04/19
Slenium公式のドキュメントを見ていたら分からなくなったので、別サイトを参考にSelenium-RCをJavaで動かした。
メモ
基本的には上記URLの通りに作業して行けばよいが、微妙につまづいた箇所があるのでメモ。
①TestBase.javaファイルのgetDefaultPort()でのエラー
SeleniumTestクラスのgetDefaultPort()がSelenium1.0から廃止になったので、そのままコピペだとエラーになる。そのため下記のような修正が必要。
(参考サイト:http://yoshidumi.blogspot.jp/2009/09/selenium10.html)
1 |
selenium = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), testBrowser, testUrl); |
を
1 |
selenium = new DefaultSelenium("localhost", 4444, testBrowser, testUrl); |
というように修正する。
②テストの再実行で失敗する。
すでにSeleniumサーバーが立ち上がっている場合、プログラム内で起動すると下記のエラーが出ます。
16:07:16.390 WARN – Failed to start: SocketListener1@0.0.0.0:4444
これを解決するには、プログラムから起動した。Seleniumサーバーを止める必要があります。
方法は下記URLをブラウザで叩いて、「OKOK」という文字列が表示されればよいとのこと。Seleniumサーバーが既に止まっている場合は、「ページ接続エラー」になります。
(ドメインとポートはseleniumサーバが立ち上がっているサーバーのものを指定。ここではlocalhost:4444)
http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer
③IEが古いとSelenium用のjsスクリプトが動かない。
これはタイトル通り。IeCollectionを入れてから、なんかieの調子が悪いので、自分の端末だとie指定ではうまくいきませんでした。
④FireFox指定をしたときにエラー
ブラウザとして「*firefox」(「*firefox3」も同様)を指定した時に下記のエラーが発生する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
16:06:12.890 INFO - Preparing Firefox profile... 16:06:33.546 ERROR - Failed to start new browser session, shutdown browser and clear all session data java.lang.RuntimeException: Firefox refused shutdown while preparing a profile at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.waitForFullProfileToBeCreated(FirefoxChromeLauncher.java:367) at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.populateCustomProfileDirectory(FirefoxChromeLauncher.java:120) at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.launch(FirefoxChromeLauncher.java:90) at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.launchRemoteSession(FirefoxChromeLauncher.java:412) at org.openqa.selenium.server.BrowserSessionFactory.createNewRemoteSession(BrowserSessionFactory.java:399) at org.openqa.selenium.server.BrowserSessionFactory.getNewBrowserSession(BrowserSessionFactory.java:143) at org.openqa.selenium.server.BrowserSessionFactory.getNewBrowserSession(BrowserSessionFactory.java:104) at org.openqa.selenium.server.SeleniumDriverResourceHandler.getNewBrowserSession(SeleniumDriverResourceHandler.java:811) at org.openqa.selenium.server.SeleniumDriverResourceHandler.doCommand(SeleniumDriverResourceHandler.java:437) at org.openqa.selenium.server.SeleniumDriverResourceHandler.handleCommandRequest(SeleniumDriverResourceHandler.java:407) at org.openqa.selenium.server.SeleniumDriverResourceHandler.handle(SeleniumDriverResourceHandler.java:151) at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1526) at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1479) at org.openqa.jetty.http.HttpServer.service(HttpServer.java:914) at org.openqa.jetty.http.HttpConnection.service(HttpConnection.java:820) at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:986) at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837) at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:243) at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:357) at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:534) Caused by: org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher$FileLockRemainedException: Lock file still present! C:\DOCUME~1\T-NAKA~1\LOCALS~1\Temp\customProfileDirbca50c786bb843578e503a3adccfe07e\parent.lock at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.waitForFileLockToGoAway(FirefoxChromeLauncher.java:318) at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.waitForFullProfileToBeCreated(FirefoxChromeLauncher.java:365) ... 19 more 16:06:33.593 INFO - Got result: Failed to start new browser session: Error while launching browser on session null |
原因は掴めてません。バージョンの問題かしらと思っているだけ。。
ちなみにSeleniumで対応しているブラウザは下記。
(間違った指定をするとエラーとして表示されます。)
Supported browsers include:
*firefox
*mock
*firefoxproxy
*pifirefox
*chrome
*iexploreproxy
*iexplore
*firefox3
*safariproxy
*googlechrome
*konqueror
*firefox2
*safari
*piiexplore
*firefoxchrome
*opera
*webdriver
*iehta
*custom
on session null
ということで、まともに動いたのはGoogleChromeだけ。。
まあ今回やりたいことはブラウザテストじゃないから良いか。
関連記事
-
-
Seleniumを覚える エラー対応(Couldn't proxy to http://xxxxxxx/ because host not found)
前回やっとこさSeleniumを動かせたので、ケース …
-
-
【Selenium】【ruby】Casperjsでどうも取得できないページがあるので…Selenium-webdriver!!
casperでダメなサイトがあったので…webdriverを試してみ …
-
-
Selenium Web Driver使い方 (java)
ここが凄い丁寧で分かりやすい。 http://d.hatena.ne.jp/su …
-
-
どうしてもSelenium-IDEが使いたい そのためには古いFireFoxが欲しい!!
(2015/03/11補足) 最近のfirefoxは無理くり入れられる。下記から …