gpt4 book ai didi

python - Selenium firefox webdriver 在一台机器上工作,但在另一台机器上工作

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:11 25 4
gpt4 key购买 nike

这是我正在运行的非常简单的代码:

from selenium import webdriver
driver = webdriver.Firefox()`

这是它在 Google 计算实例上导致的错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 77, in __init__
self.binary, timeout),
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 49, in __init__
self.binary.launch_browser(self.profile)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser
self._wait_until_connectable()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 98, in _wait_until_connectable
raise WebDriverException("The browser appears to have exited "
selenium.common.exceptions.WebDriverException: Message: The browser appears to have exited before we could connect. If you specified a log_file in the FirefoxBinary construct
or, check it for details.

在我的两台机器上

  • Python 2.7.6
  • Mozilla Firefox 42.0
  • 定位 selenium 返回 .../usr/local/lib/python2.7/dist-packages/selenium-2.48.0.dist-info/DESCRIPTION.rs ...
  • 所以,Selenium 2.48.0
  • lsb_release -a
    没有可用的 LSB 模块。
    发行商 ID:Ubuntu
    说明:Ubuntu 14.04.3 LTS
    发布时间:14.04
    代号:值得信赖

一台机器在谷歌计算服务器上运行(它错误),另一台机器在VM VirtualBox上运行(它可以工作),但这是我能找到的唯一区别,它不重要。

还有哪些其他差异可能会在一台计算机上导致此错误,而在另一台计算机上则不会?

注意:我在想也许谷歌计算引擎无法打开浏览器窗口,因为你只能通过 ssh 进入命令行?那这个问题就不能解决了吗?

注意:此代码适用于两台机器:

from selenium import webdriver
driver = webdriver.PhantomJS

但是,我需要使用 Firefox,所以这不是一个解决方案,只是需要记住的另一件事。

最佳答案

正如您所指出的,原因可能是您正在 headless 系统上运行。 PhantomJS 和 HTMLUnit 以及类似的东西不需要 x-server。

您可以尝试在命令行上输入 firefox 来启动 Firefox。如果失败并出现类似 Can't find/open display on 0.0 或 smth.像这样,你应该使用 XVFB:

这里是如何使用XVFB的说明。

sudo apt-get update
sudo apt-get install firefox xvfb
sudo Xvfb :10 -ac
export DISPLAY=:10

现在您可以尝试使用firefox启动firefox

我复制的命令: http://www.installationpage.com/selenium/how-to-run-selenium-headless-firefox-in-ubuntu/

如果您想在 Java 应用程序中设置 DISPLAY 端口并且仅针对您的 Firefox 实例,您可以这样做:

    FirefoxBinary firefoxBinary = new FirefoxBinary();
firefoxBinary.setEnvironmentProperty("DISPLAY", ":10");

new FirefoxDriver(firefoxBinary, new FirefoxProfile());

关于python - Selenium firefox webdriver 在一台机器上工作,但在另一台机器上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33559686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com