読者です 読者をやめる 読者になる 読者になる

Firefox3でSelenium

ひさびさに自分の端末でSeleniumのテストを実行したところこんなエラーが...

java.lang.RuntimeException: Firefox refused shutdown while preparing a profile
	at org.openqa.selenium.server.browserlaunchers.FirefoxCustomProfileLauncher.waitForFullProfileToBeCreated(FirefoxCustomProfileLauncher.java:277)
	at org.openqa.selenium.server.browserlaunchers.FirefoxCustomProfileLauncher.launch(FirefoxCustomProfileLauncher.java:147)
	at org.openqa.selenium.server.browserlaunchers.AbstractBrowserLauncher.launchRemoteSession(AbstractBrowserLauncher.java:24)
	at org.openqa.selenium.server.SeleniumDriverResourceHandler.getNewBrowserSession(SeleniumDriverResourceHandler.java:587)
	at org.openqa.selenium.server.SeleniumDriverResourceHandler.doCommand(SeleniumDriverResourceHandler.java:396)
	at org.openqa.selenium.server.SeleniumDriverResourceHandler.handleCommandRequest(SeleniumDriverResourceHandler.java:375)
	at org.openqa.selenium.server.SeleniumDriverResourceHandler.handle(SeleniumDriverResourceHandler.java:123)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
	at org.mortbay.http.HttpServer.service(HttpServer.java:909)
	at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
	at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
	at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
	at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
	at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
	at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
Caused by: org.openqa.selenium.server.browserlaunchers.FirefoxCustomProfileLauncher$FileLockRemainedException: Lock file still present! C:\DOCUME~1\hoge\LOCALS~1\Temp\customProfileDir215204\parent.lock
	at org.openqa.selenium.server.browserlaunchers.FirefoxCustomProfileLauncher.waitForFileLockToGoAway(FirefoxCustomProfileLauncher.java:235)
	at org.openqa.selenium.server.browserlaunchers.FirefoxCustomProfileLauncher.waitForFullProfileToBeCreated(FirefoxCustomProfileLauncher.java:275)
	... 15 more

基本的にIEメインでテストをしておりファイルアップロードなどIEで実行できないテストのみFirefoxを使っていたのですが、Firefox3にバージョンアップしたのが影響していました。selenium-server 0.9.2に含まれるFirefox用のプロファイルはFirefox3では使用できないため、デフォルトのプロファイルで起動しようとしていることが原因だと思います。
Note to self: Use Selenium RC in Firefox 3
こちらのサイトを参考にあるとおり、対応するためには以下の2つの方法があります。

  1. 1.0 beta2を使う
  2. selenium-server.jarを展開してプロファイルを編集する(詳細はリンク先参照)

私のところでは、バージョンを上げたところ正常に動作するようになりました。以前書いたファイルアップロードについてのセキュリティの設定は不要になったようです。こちらを参照。