我刚刚为 Jenkins 安装了 Selenium Grid 插件,并开始探索用它分发测试。我创建了一个简单的测试,它只打开一个浏览器,获取一个 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;
}