Jenkins用のSeleniumGridプラグインをインストールし、それを使用してテストを配布する方法を検討し始めました。ブラウザを開いてURLを取得し、ブラウザを閉じるだけの簡単なテストを作成しました。これはChrome(Macの場合)とIE(Windowsの場合)で機能するようですが、何らかの理由でMacでFirefox 18.0.2を使用すると、ブラウザウィンドウが開いているのに、ロードするはずのURLがURLに表示されません。バーと物事がハングし、エラーが発生します:
WebDriverException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
RemoteDriverを作成するために、コンストラクターのどこかにぶら下がっています。コンストラクターの直後にトレースステートメントを追加しましたが、コードがそこに到達することはありません。
奇妙なことに、失敗した同じマシンでローカルのSelenium Gridノードを起動し、Jenkins Selenium Gridハブではなく、そこにテストを送信すると、テストは正常に実行されます。したがって、Jenkinsノードの設定方法に問題がある可能性がありますが、これをトラブルシューティングする方法がわかりません。どんな助けでもいただければ幸いです。
私のコードは次のようなものです:
WebDriver driver = null;
public Browser(String gridUrl) {
driver = makeFirefox(gridUrl);
driver.get(url);
}
private WebDriver makeFirefox(String gridUrl) {
FirefoxProfile prof = new FirefoxProfile();
prof.setEnableNativeEvents(true);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(FirefoxDriver.PROFILE, prof);
WebDriver driver = null;
try{
driver = new RemoteWebDriver(new URL(gridUrl), capabilities);
} catch (MalformedURLException e) {
e.printStackTrace();
}
return driver;
}