我只是用 Selenium 迈出了第一步。我成功设置了一个测试(Firefox 驱动程序),在我的 Jenkins 上的 Selenium 网格上运行(使用 Jenkins-Selenium-Grid 插件)。我还在运行 Jenkins 的机器(Server2003 64 位)上安装了 Chromdriver 插件和 Chrome 本身。
Chrome 已为所有用户安装(位于 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe)。问题是:一旦我尝试使用 Chromedriver,我就会得到
UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
既然火狐测试运行正常,那一定是“浏览器启动”有问题吧?!
所以第一个问题是:Chromdriver 假定的 chrome 二进制文件的默认位置是什么?
第二个问题:如何解决这个问题?是否有要设置的环境属性?或者我可以简单地将 PATH 设置为 chrome.exe 的位置。
更新:我挖了一下,我想我遇到了 this 或 that 。这个问题有什么解决方法吗?
最佳答案
我自己也经历了同样的过程。
使用 Selenium Plugin 您可以设置 Selenium 网格。
使用 Chromedriver Plugin 您可以自动安装 chrome 驱动程序。
使用 Selenium Axis Plugin 您可以创建矩阵作业。
第一次安装问题
安装 Chromedriver 插件后,下载并在自动安装后准备就绪可能需要几分钟时间。
可能是从服务器在主服务器完全安装之前尝试安装 chromedriver,因此无法查找下载位置。
重新启动从站将使其再次尝试并在从站上安装 chromedriver。
在每个从站和主站上,您最终应该得到一个 $JENKINS_HOME\tools\chromedriver\chromedrive.exe
,您可以在 Chrome[driver] 二进制路径的 Jenkins Selenium 插件配置中将其引用为 tools\chromedrive\chromedriver.exe
,Jenkins 将为您添加特定于从站的 $JENKINS_HOME
。
将 Chrome 安装到默认位置,结果与描述的 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
相同。
此时,我可以成功运行测试作业,而不会出现您显示的错误。
DesiredCapabilities capability = DesiredCapabilities.chrome();
WebDriver driver = new RemoteWebDriver(new URL("http://Jenkins.ip.here:4444/wd/hub"), capability);
driver.get(siteBase.toString());
String page = driver.getPageSource();
所以还有一些其他的事情需要考虑
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
关于selenium - 如何在 Jenkins 托管的网格上使用 Chromedriver 设置 Selenium,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9567682/