尝试通过
运行铬的硒/usr/bin/xvfb-run -a -e /tmp/selenium.log -w 0 /usr/bin/python2.7
并出现
之类的错误(<class 'selenium.common.exceptions.WebDriverException'>, WebDriverException(), <traceback object at 0x7fc7cfc9c128>)
奇怪的是,我什至没有获得完整的堆栈跟踪,并且xvfb-run的-e
选项也没有在文件中返回任何错误。
这是我的代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
f = webdriver.ChromeOptions()
browser =webdriver.Chrome(executable_path='/home/local/chromedriver',chrome_options=f)
browser.get(url)
browser.quit()
我也尝试过
executable_path='/usr/bin/chromedriver'
且没有execute_path
但出现相同的错误。
最初是通过Firefox使用python 2.6 的。
我检查了大约10-15个类似的问题,甚至关于如何启用更多跟踪或调试的问题,但在这里似乎没有一种解决方案对我有用。
硒版本3.141.0
编辑: 我更新了一些代码以能够获得完整的堆栈跟踪,并且出现了此错误
WebDriverException:消息:浏览器似乎已退出 我们可以连接。
多挖一点,发现它与硒/浏览器有关 安装了旧的硒版本2.53
上述错误已消失,但现在我被所有错误的对等错误重置连接,下面是堆栈
(<class 'socket.error'>, error(104, 'Connection reset by peer'), <traceback object at 0x1e1e320>)
Traceback (most recent call last):
File "/var/www/Goose/src/goose/network.py", line 137, in get_html
browser.get(url)
File "/var/www/Goose/src/selenium/webdriver/remote/webdriver.py", line 245, in get
self.execute(Command.GET, {'url': url})
File "/var/www/Goose/src/selenium/webdriver/remote/webdriver.py", line 231, in execute
response = self.command_executor.execute(driver_command, params)
File "/var/www/Goose/src/selenium/webdriver/remote/remote_connection.py", line 395, in execute
return self._request(command_info[0], url, body=data)
File "/var/www/Goose/src/selenium/webdriver/remote/remote_connection.py", line 426, in _request
resp = self._conn.getresponse()
File "/usr/lib64/python2.6/httplib.py", line 1049, in getresponse
response.begin()
File "/usr/lib64/python2.6/httplib.py", line 433, in begin
version, status, reason = self._read_status()
File "/usr/lib64/python2.6/httplib.py", line 389, in _read_status
line = self.fp.readline(_MAXLINE + 1)
File "/usr/lib64/python2.6/socket.py", line 479, in readline
data = self._sock.recv(self._rbufsize)
error: [Errno 104] Connection reset by peer
甚至安装了requests [security]
,因为我已经看到一个原因。
答案 0 :(得分:0)
解决了, 问题是chrome浏览器和驱动程序未正确安装,并且它们的版本不兼容
使用从我那里获得的脚本安装了最新的chrome,以便在ami服务器上运行 https://intoli.com/blog/installing-google-chrome-on-centos/
完美安装, 添加了几个关键参数,
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('path to driver',chrome_options=chrome_options)
中提琴开始工作