【问题标题】:How to build remote Webdriver for Chrome如何为 Chrome 构建远程 Webdriver
【发布时间】:2011-10-18 18:26:15
【问题描述】:

我正在尝试针对 Chrome 运行我的 Selenium 测试。当我在本地初始化驱动程序时:

@driver = Selenium::WebDriver.for( :chrome )

一切正常(我已经将 Chrome 二进制文件放在我的 PATH 中) 但是当我尝试远程启动它时:

@driver = Selenium::WebDriver.for(:remote, :url => 'http://' + SELENIUM_HOST + port + webdriver_hub, :desired_capabilities => :chrome)

我收到以下错误

Selenium::WebDriver::Error::UnhandledError: 的路径 chromedriver 可执行文件必须由 webdriver.chrome.driver 设置 系统属性;有关详细信息,请参阅 http://code.google.com/p/selenium/wiki/ChromeDriver。最新的 版本可以从 http://code.google.com/p/chromium/downloads/list (java.lang.IllegalStateException)

我有点困惑 - 我应该如何设置这个系统属性?我发现这段代码是用 Java 写的:

DesiredCapabilities caps = DesiredCapabilities.chrome();
caps.setJavascriptEnabled(true);
caps.setCapability("chrome.binary", "/path/to/where/chrome/is/installed/chrome.exe");
System.setProperty("webdriver.chrome.driver","/path/to/where/you/ve/put/chromedriver.exe");
ChromeDriver driver = new ChromeDriver(caps);

但我的测试是用 Ruby 编写的。 RubyBindings 不讲这个问题http://code.google.com/p/selenium/wiki/RubyBindings

【问题讨论】:

    标签: ruby google-chrome selenium webdriver


    【解决方案1】:

    其实报错信息有点不对。您没有有设置系统属性,但 chromedriver 可执行文件需要在远程机器(服务器正在运行的地方)的 PATH 中可用。

    如果要将路径指定为属性,可以在启动服务器时执行,例如:

    java -Dwebdriver.chrome.driver=/path/to/driver -jar selenium-server-standalone.jar
    

    【讨论】:

      【解决方案2】:

      您必须在测试代码中设置 cromedriver.exe 的路径。有点像

      System.setproperty();
      

      在 Java 中

      我也在使用基于 Java 的测试,因此我无法为您提供 Ruby 的确切示例。但基本上你必须告诉你的 Ruby 程序 chromedriver.exe

      的路径在哪里

      【讨论】:

      • 感谢您的提示,帕维尔。但这正是我正在寻找的 - 如何在 Ruby 中设置此属性。
      • 我不是 Ruby 专家,所以我不知道......但经过一番搜索,我发现了这个问题:stackoverflow.com/questions/2348621/… 这有帮助吗?如果没有,也许考虑问 Ruby 特定的问题
      【解决方案3】:

      好的,伙计们。在帮助下,我可以找到答案。看看这个。

      这就是您在本地机器上设置驱动程序的方式:

          @driver = Selenium::WebDriver.for(:remote, :chrome :url => 'http://' + SELENIUM_HOST + port + webdriver_hub, :desired_capabilities => browser)
      

      在哪里

      browser = ':chrome'
      port = ':4444'
      webdriver_hub = '/wd/hub'
      

      在运行服务器的远程机器上会是这样的

          java -jar selenium-server-standalone-2.2.0.jar -Dwebdriver.chrome.driver="path/to/where/you/put/chromedriver.exe"
      

      在本地机器上运行测试之后。

      祝你好运!

      【讨论】:

        【解决方案4】:

        我发现所选答案非常具有误导性。我花了大约一个小时来释放其中的错误。 node 是应该设置webdriver.chrome.driver 属性的节点,而不是hub。

        因此,所选答案的命令应该是:

        java -Dwebdriver.chrome.driver=/path/to/driver -jar selenium-server-standalone.jar -role node

        【讨论】:

          猜你喜欢
          • 2022-01-08
          • 2023-03-28
          • 1970-01-01
          • 1970-01-01
          • 2012-05-19
          • 1970-01-01
          • 2019-01-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多