【问题标题】:Selenium server throws error when attempting to run test with chrome or Internet ExplorerSelenium 服务器在尝试使用 chrome 或 Internet Explorer 运行测试时抛出错误
【发布时间】:2015-04-30 21:26:47
【问题描述】:

我有一个 python webdriver 脚本,它使用 firefox 在远程服务器上成功运行了测试,但是在使用 chrome 和 internet explorer 时它会引发错误。

我已将包含两个驱动程序的目录添加到服务器的路径中。我还尝试使用以下方法启动服务器: java -jar .\selenium-server-standalone-2.45.0.jar -Dwebdriver.ie.driver=.\IEDriverServer.exe -role hub

我在 powershell 中总是遇到同样的错误:

"... - 例外:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置;..."

工作脚本:

def setUp(self):
    self.wd = webdriver.Remote(
        desired_capabilities=DesiredCapabilities.FIREFOX)

抛出错误:

def setUp(self):
    self.wd = webdriver.Remote(
        desired_capabilities=DesiredCapabilities.CHROME)

这个问题的罪魁祸首是什么?

【问题讨论】:

    标签: python selenium selenium-webdriver selenium-chromedriver selenium-server


    【解决方案1】:

    您已安装并配置了用于 Firefox 的 Selenium 驱动程序,但没有用于 Chrome。安装和配置归结为这一点(source):

    设置

    ChromeDriver 是 WebDriver 用来控制的单独的可执行文件 铬合金。它由 Chromium 团队在 WebDriver 的帮助下维护 贡献者。如果你不熟悉 WebDriver,你应该检查 出自己的Getting Started page

    按照以下步骤设置测试以使用 ChromeDriver 运行:

    • 确保 Chromium/Google Chrome 安装在可识别的位置 ChromeDriver 希望您默认安装 Chrome 您平台的位置。您还可以强制 ChromeDriver 使用 通过设置特殊功能来自定义位置。
    • 在此站点的downloads section 下下载适用于您平台的 ChromeDriver 二进制文件
    • 帮助 WebDriver 找到下载的 ChromeDriver 可执行文件 这些步骤中的任何一个都可以解决问题:
      • 在 PATH 环境变量中包含 ChromeDriver 位置
      • (仅限 Java)通过 webdriver.chrome.driver 系统属性指定其位置(参见下面的示例)
      • (仅限 Python)在实例化 webdriver.Chrome 时包含 ChromeDriver 的路径(参见下面的示例)

    因此,基本上,您需要在 PATH 中设置 Chrome 驱动器的路径,或者像这样实例化驱动器:

    driver = webdriver.Chrome('/path/to/chromedriver')
    

    【讨论】:

    • 如果这是客户端的问题,selenium builder至少应该能够在服务器上运行测试吗?
    【解决方案2】:

    下载Chromedriver

    from selenium import webdriver
    
    driver = webdriver.Chrome('C:\\Users\\xxx\\Downloads\\chromedriver_win32\\chromedriver.exe')
    driver.get("http://www.seleniumhq.org/")

    【讨论】:

    • 这将在 chrome 本地运行其余部分,它将如何在 selenium 服务器上运行测试?
    • @BarryG 你找到为 selenium 服务器设置它的解决方案了吗?你能发布答案吗?谢谢。
    • @sridhar249 我现在不记得了。我确实记得切换到 nightmare.js 并使用像 mocha 这样的简单测试框架,它在本质上是 chrome 的专用电子框架中运行测试。配置和使用 selenium 的过程并不那么痛苦。
    【解决方案3】:

    代码是JAVA的,在python中设置路径类似

    如果您的环境变量中没有设置 PATH ,则以编程方式设置它,如下所示:

    System.setProperty("webdriver.chrome.driver", "Path_to_your_chromedriver.exe");
    driver = new ChromeDriver();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-25
      • 2017-11-01
      • 2016-03-23
      • 2017-09-14
      • 2020-11-03
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      相关资源
      最近更新 更多