【发布时间】:2018-10-17 23:15:00
【问题描述】:
我正在尝试在 Ubuntu 18.04(amd64) LXC 容器中使用 Selenium。
硒版本 3.14.1,
火狐 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 系统(不是在容器中)上尝试了这个,并遇到了完全相同的问题。
【问题讨论】:
-
这可能是一个愚蠢的问题,但你是如何安装它的?您是否解压缩了 tar.gz 并授予了二进制文件的执行权限?
-
@SantiagoBruno 我从网站上下载了它,将其解压并将其复制到我的路径中。它在一个 lxc 容器中,所以一切都以 root 身份运行并具有 root 权限,并且二进制文件对所有用户都具有执行权限。权限应该没问题。
-
我刚刚在我身边的一台 Linux 笔记本电脑上尝试了一个快速测试程序。我做了所有相同的步骤,它奏效了。做那个测试我意识到它实际上启动了浏览器。我想知道它是否与在没有显示的 lxc 中运行它有关。我在上面运行这个有同样问题的服务器实际上可能是 Ubuntu 的服务器版本(缺少显示管理器),但我不能 100% 确定。
-
您应该始终以非root用户身份执行您的@Test。
-
@DebanjanB 如前所述,这是在容器中运行的。唯一的用户是 root,因为我没有设置其他用户,因为没有理由这样做。在这种情况下以非 root 身份运行的建议是无关紧要的。
标签: python selenium firefox geckodriver lxc