我正在尝试在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系统(不在容器中)上尝试了此操作,并得到了完全相同的问题。
答案 0 :(得分:2)
以防万一有人偶然发现并遇到类似问题,我的问题的根源是我最初所有尝试使用网络驱动程序的尝试都是在lxc exec <container> bash
或ssh
会话中进行的而不使用ssh x11转发。在这两种情况下,python webdriver都会失败,因为它实际上无法启动浏览器。我现在已经在几个不同的环境中运行它,全部使用x11转发,并且可以正常工作。