我正在尝试在Ubuntu 18.04(amd64)LXC容器中使用Selenium。
硒版本3.14.1,
Firefox版本62.0.3,
Python 2.7

我安装了geckodriver-v0.22.0-linux64.tar.gz
https://github.com/mozilla/geckodriver/releases到/ usr / local / bin(在我的路径中)

当我尝试导入驱动程序时,出现以下错误:

>>> from selenium import webdriver
>>> driver = webdriver.Firefox()
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 174, in __init__
    keep_alive=True)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 253, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 324, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process


我看到了this类似的帖子,问题最终是Selenium,Firefox和GeckoDriver之间的版本兼容性问题,但我认为情况并非如此。

我一直在谷歌搜索,没有运气。也看了几个github帖子,仍然没有运气。我希望这里有人可以给我一些想法。

在容器中执行此操作可能存在问题。但是,我确实在普通的Ubuntu系统(不在容器中)上尝试了此操作,并得到了完全相同的问题。

最佳答案

万一有人偶然发现这个问题并遇到类似的问题,我的问题的根源是,我使用webdriver的所有原始尝试都是在lxc exec <container> bashssh会话中进行的,而没有使用ssh x11转发。在这两种情况下,python webdriver都会失败,因为它实际上无法启动浏览器。我现在已经在几个不同的环境中运行它,全部使用x11转发,并且可以正常工作。

08-20 04:31