java - selenium 服务器,selenium 客户端,在 UBUNTU GUI 服务器上

标签 java python selenium ubuntu ssh

我有一个 VPSubuntu 14.04 LTS 并且安装了桌面包,这意味着我可以从 ssh -X 启动 firefox session 。 为了进行测试,我从我的服务器启动了 selenium 独立服务器 jar (selenium-server-standalone-3.0.0-beta3.jar) 启动它后,在另一个 ssh session 中,我只需输入 python 命令:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

然后,按照来自 http://selenium-python.readthedocs.io/getting-started.html#using-selenium-with-remote-webdriver ,我输入:

driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities=DesiredCapabilities.FIREFOX)

45 秒后,我在服务器窗口和客户端窗口中都出现了很多错误。 这是主要错误:

Caused by: org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: Error: GDK_BACKEND does not match available displays

我看到有些人有同样的问题,但即使使用最新的 java 和 selenium 版本,我仍然遇到这个问题。 预先感谢您的帮助

最佳答案

您似乎正在尝试使用最新的 firefox 版本的 selenium 3。要使用 selenium 3 支持最新的 firefox,需要 download latest geckodriver executable from this link并将其提取到您系统中的任何位置。

现在运行 selenium-server-standalone-3.0.0-beta3.jar 使用下面的命令:-

java -jar selenium-server-standalone-3.0.0-beta3.jar -Dwebdriver.gecko.driver = "path/to/downloaded geckodriver"

现在您需要将 marionette 属性的功能设置为 true 以支持带有 selenium 3 的最新 firefox,如下所示:-

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.FIREFOX

# Tell the Python bindings to use Marionette.
caps["marionette"] = True

driver = webdriver.Remote(command_executor = 'http://127.0.0.1:4444/wd/hub', desired_capabilities = caps)

注意 :- 更多information about marionette follow this Mozilla official page

关于java - selenium 服务器,selenium 客户端,在 UBUNTU GUI 服务器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39333726/

相关文章:

java - 如何在没有soap webService接口(interface)的情况下使用javax.xml.ws

python - SymPy rref() 返回奇异矩阵的单位矩阵

java - 能够从 IntelliJ 运行配置运行 JUnitCore 测试运行程序,但不能从命令行运行

java - jFileChooser 保存所选选项卡的文件

java - 我配置为监听端口的 Tomcat 连接器无法启动?

python - pandas 如何使用 groupby 将 NaN 值替换为平均值

python - 如何修复无效语法

javascript - 如何在selenium python中定位脚本标签中的元素

python - 如何将 Python 变量传递给 XPath 表达式?

java - 通过对象比较使 mockito 不那么严格