在 selenium 远程节点上运行 chrome 时出错

Posted

技术标签:

【中文标题】在 selenium 远程节点上运行 chrome 时出错【英文标题】:Error when running chrome on selenium remote node 【发布时间】:2015-01-05 21:39:00 【问题描述】:

我的一台远程机器上有一个 selenium 集线器,而其他机器有 selenium 节点。

from selenium.webdriver import Remote
from selenium.webdriver import DesiredCapabilities

r = Remote('http://10.10.3.66:4444/wd/hub', DesiredCapabilities.CHROME)
r.get(somewebsite)

10.10.3.66 是具有集线器的机器,我有一个本地节点和一个远程节点。两者都连接到远程集线器,但是 chrome 不在远程节点上运行,而是在本地节点上运行.

当我(在远程节点上)运行上面的代码时出现以下异常:

selenium.common.exceptions.WebDriverException: Message: u"unknown 错误:Chrome 无法启动:崩溃\n(驱动程序信息: 铬驱动程序=2.12.301324 (de8ab311bc9374d0ade71f7c167bad61848c7c48),平台=Linux 2.6.32-042stab065.3 x86_64)(警告:服务器未提供任何堆栈跟踪信息)\n命令持续时间或超时:60.05 秒\n构建信息:版本:'2.43.0',修订:'597b76b',时间: '2014-09-09 20:52:14'\n系统信息:主机:'linux-node-firefox',ip: '10.10.3.67',os.name:'Linux',os.arch:'amd64',os.version: '2.6.32-042stab065.3', java.version: '1.6.0_33'\n驱动信息: org.openqa.selenium.chrome.ChromeDriver" ; 堆栈跟踪:

并且在节点的控制台上出现以下错误:

启动 ChromeDriver 2.12.301324 (de8ab311bc9374d0ade71f7c167bad61848c7c48) 端口 8719 仅本地 允许连接。 [0.011][警告]:PAC 支持已禁用 因为没有系统实现

顺便说一句,使用DesiredCapabilities.FIREFOX 运行相同的代码可以工作。

【问题讨论】:

【参考方案1】:

很可能您的机器上没有 chrome 驱动程序。可以从这个链接下载:https://code.google.com/p/selenium/wiki/ChromeDriver

添加如下代码设置chrome驱动路径:

Java

System.setProperty("webdriver.chrome.driver", "C:/.../chromedriver.exe");

Python

chromedriver = "C:/.../chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)

根据你机器上的位置安排路径。

希望这会有所帮助...

【讨论】:

【参考方案2】:
    您是否安装了 chrome 驱动程序并在节点上设置了 PATH?

【讨论】:

以上是关于在 selenium 远程节点上运行 chrome 时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何在远程节点上使用selenium上传文件[Python] [关闭]

在 selenium chromedriver 上运行的远程调试 Internjs

在 chrome 和 msedge 浏览器上并行运行 selenium python 脚本

有没有办法在远程主机上运行 Selenium 测试?

无法在远程服务器上调试节点应用程序

selenium-grid分布式自动化测试