如何在Jenkins托管网格上使用Chromedriver设置Selenium

如何在Jenkins托管网格上使用Chromedriver设置Selenium,selenium,jenkins,jenkins-plugins,selenium-chromedriver,Selenium,Jenkins,Jenkins Plugins,Selenium Chromedriver,我只是用硒做我的第一步。我成功地设置了一个测试(Firefox驱动程序),在Jenkins上的Selenium网格上运行(使用Jenkins Selenium网格插件)。我还在运行Jenkins的机器(Server2003 64位)上安装了Chromdriver插件和Chrome本身。 为所有用户安装了Chrome(在C:\Program Files(x86)\Google\Chrome\Application\Chrome.exe中)。问题是:一旦我尝试使用Chromedriver,我就会得到

我只是用硒做我的第一步。我成功地设置了一个测试(Firefox驱动程序),在Jenkins上的Selenium网格上运行(使用Jenkins Selenium网格插件)。我还在运行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.
因为Firefox测试运行良好,所以“浏览器启动”一定有问题?! 所以第一个问题是:Chromdriver假设的chrome二进制文件的默认位置是什么? 第二个问题:如何解决这个问题?是否要设置eEnvironment属性?或者我可以简单地将路径设置为chrome.exe的位置


更新:我在附近挖了一点,我想我遇到了或。是否有解决此问题的方法

您可以将其用作节点设置代码:

java-jar selenium-server-standalone-2.19.0.jar-Dwebdriver.chrome.driver=“C:\java\chromedriver.exe”-角色节点-hub-browser“browserName=internetexplorer,version=8,platform=WINDOWS”-browser“browserName=chrome,version=17,platform=WINDOWS”-browser“browserName=firefox,version=9,platform=WINDOWS”-浏览器browserName=opera,版本=11,平台=WINDOWS


因此chromedriver二进制文件有直接的指向性,它是一个chromedriver.exe而不是普通的chrome.exe。我有类似的问题,它对我有效。

我在selenium group中问了同样的问题:

那里提供的解决方案对我不起作用,但可能对你起作用?
(在jenkins上为chromedriver设置路径)

启动节点时是否指定了
-Dwebdriver.chrome.driver=PATH/To/chromedriver


添加这些可能会有所帮助。

我自己也经历了同样的过程

使用可设置selenium网格。
通过使用,您可以自动安装chrome驱动程序。
使用可以创建矩阵作业

首次安装问题 安装Chromedriver插件后,需要几分钟时间下载并在自动安装后准备就绪。 可能是从属服务器在主服务器完全安装之前尝试安装chromedriver,因此无法查找下载位置。 重新启动从机将使其重试并在从机上安装chromedriver

在每个从机和主机上,您最终应该得到一个
$JENKINS\u HOME\tools\chromedriver\chromedrive.exe
,您可以在Chrome[驱动程序]的JENKINS Selenium插件配置中参考它二进制路径为
tools\chromedrive\chromedriver.exe
,Jenkins将为您预先设置从属
$Jenkins_HOME

已将Chrome安装到默认位置,该位置原来是
C:\ProgramFiles(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();
所以有些其他事情要考虑

  • 更改了jenkins selenium配置后,您是否重新启动了selenium服务,在配置更改后,它似乎会停止这些服务。配置是否指定了实例
  • 如果是安装位置问题,您可以使用更改测试用例中的安装位置选项

    ChromeOptions options = new ChromeOptions();
    options.setBinary("/path/to/other/chrome/binary");
    

我使用Jenkins Selenium Grid插件和Chromedriver插件,这意味着所有节点设置都由该插件完成(如上所述,firefox运行正常)。由于Jenkins在系统帐户下运行,因此默认位置没有chrome.exe。但是设置“.setCapability”(“chrome.binary“,“\”C:\\Program Files(x86)\\Google\\chrome\\Application\”)“没用。我不知道jenkins插件在哪里尝试查找可执行文件(%HOMEPATH%未为系统设置)。因此,如何设置将chrome复制到的路径或wehre。它应该在java命令之后添加,因为它是JVM的一个参数,如果将它放在.jar规范之后,该命令将失败。我正在尝试使用lighthouse而不是Selenium,但不断获得无法连接到chrome的
。错误命令失败,退出代码为1
。有什么想法吗?