我有一个 VPS
和 ubuntu 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/