lxc容器中的硒; WebDriverException:消息:无效参数:无法杀死已退出的进程

时间:2018-10-17 23:15:01

标签: python selenium firefox geckodriver lxc

我正在尝试在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之间的版本兼容性问题,但我认为情况并非如此。

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

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

1 个答案:

答案 0 :(得分:2)

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