无法使用Chrome和Firefox在Linux上运行Selenium + Python脚本

时间:2017-04-27 18:20:46

标签: python google-chrome selenium selenium-chromedriver mint

我无法在 Linux Mint 18.1 Serena 上运行/执行 python(3.5) + selenium(3.4.0)脚本在 Chrome Firefox

详细说明:

当我尝试在Chrome或Firefox浏览器的脚本下运行时,我遇到了问题,它在Windows机器上运行得非常好,但在Linux Mint上给出了一些奇怪的问题。

Chrome: -

import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.google.com/xhtml');
driver.close()

结果: -

Traceback (most recent call last):
File "sample1.py", line 6, in <module>
driver.get('http://www.google.com/xhtml');
File "/usr/local/lib/python3.5/dist-packages/selenium-3.4.0-py3.5.egg /selenium/webdriver/remote/webdriver.py", line 261, in get
self.execute(Command.GET, {'url': url})
File "/usr/local/lib/python3.5/dist-packages/selenium-3.4.0-py3.5.egg/selenium/webdriver/remote/webdriver.py", line 247, in execute
response = self.command_executor.execute(driver_command, params)
File "/usr/local/lib/python3.5/dist-packages/selenium-3.4.0-py3.5.egg/selenium/webdriver/remote/remote_connection.py", line 464, in execute
return self._request(command_info[0], url, body=data)
File "/usr/local/lib/python3.5/dist-packages/selenium-3.4.0-py3.5.egg/selenium/webdriver/remote/remote_connection.py", line 488, in _request
resp = self._conn.getresponse()
File "/usr/lib/python3.5/http/client.py", line 1197, in getresponse
response.begin()
File "/usr/lib/python3.5/http/client.py", line 297, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.5/http/client.py", line 266, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

FireFox: -

import time
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.google.com/xhtml');
driver.close()

结果: -

Traceback (most recent call last):
File "sample1.py", line 4, in <module>
driver = webdriver.Firefox()
File "/usr/local/lib/python3.5/dist-packages/selenium-3.4.0-py3.5.egg/selenium/webdriver/firefox/webdriver.py", line 142, in __init__
self.service.start()
File "/usr/local/lib/python3.5/dist-packages/selenium-3.4.0-py3.5.egg/selenium/webdriver/common/service.py", line 74, in start
stdout=self.log_file, stderr=self.log_file)
File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
OSError: [Errno 8] Exec format error

3 个答案:

答案 0 :(得分:3)

我通过更改geckodriver的权限并在/ usr / local / bin下移动geckodriver解决了问题

chmod +x geckodriver
cp geckodriver /usr/local/bin/

我认为它对chromedriver也一样 感谢所有帮助人员

答案 1 :(得分:0)

好的,所以看看周围,似乎这是对你至少使用geckodriver的二进制文件的抱怨。如此处所见OSError: [Errno 8] Exec format error selenium

您应该检查为其设置路径的geckodriver / chromedrive,并确保您使用的二进制文件不适用于Windows版本(我怀疑这是它适用于Windows的原因)不是为了薄荷 - 假设你正在共享机器)

我希望能帮到你。 :)(我必须承认,但我并不完全确定为什么两个浏览器的错误完全不同)

答案 2 :(得分:0)

问题可能是Pycharm。如果我从终端运行,效果很好。可能是Pycharm的权限问题。