首页 > 解决方案 > lxc容器中的硒;WebDriverException:消息:无效参数:无法终止已退出的进程

问题描述

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

我将geckodriver-v0.22.0-linux64.tar.gzhttps://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

我看到了这个类似的帖子,这个问题最终成为 Selenium、Firefox 和 GeckoDriver 之间的版本兼容性问题,但我认为这不是我的情况。

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

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

标签: pythonseleniumfirefoxgeckodriverlxc

解决方案


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


推荐阅读