我正在使用python 3.6并使用最新版本的chromedriver,我尝试使用旧版本的chromedriver,我得到同样的问题重新启动我的电脑,同样的问题。这是我为重现错误而运行的代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://google.com")
完整错误:
driver.get("https://google.com")
File "C:\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 268, in get
self.execute(Command.GET, {'url': url})
File "C:\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 254, in execute
response = self.command_executor.execute(driver_command, params)
File "C:\Python36\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 464, in execute
return self._request(command_info[0], url, body=data)
File "C:\Python36\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 488, in _request
resp = self._conn.getresponse()
File "C:\Python36\lib\http\client.py", line 1331, in getresponse
response.begin()
File "C:\Python36\lib\http\client.py", line 297, in begin
version, status, reason = self._read_status()
File "C:\Python36\lib\http\client.py", line 258, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "C:\Python36\lib\socket.py", line 586, in readinto
return self._sock.recv_into(b)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
答案 0 :(得分:1)
在driver.get(“https://google.com”)之前输入time.sleep(3),这将修复您的错误。然后,如果你像我一样,你会得到一个不同的错误。
答案 1 :(得分:1)
Seth和Jack1990的上述回答对我对使用python的IEDriverServer进行故障排除很有帮助。我曾尝试过Adhithiya的建议,但这对我的问题没有帮助。
This GitHub site对我很有帮助。需要注意的部分是“必需的配置”。我首先遵循了这一点,但是在声明中,“在IE 7或更高版本的Windows Vista或Windows 7上,必须将每个区域的保护模式设置设为相同的值。该值可以打开或关闭,例如只要每个区域都相同。”我发现我也必须针对Windows 10执行此操作。实际上,在这一点上,python错误消息非常清晰。它们都需要启用或禁用。它们不必处于同一级别。
此外,我确实不得不在time.sleep(x)中使用x的值。在以下代码中,此睡眠命令是driver = webdriver.Ie()
和driver.get("http://testwisely.com/demo")
之间的命令。如果为我设置为5,则ie驱动程序将首先触发本地主机,并抱怨无法访问该主机,然后它连接到我想要它的页面(大多数时间!)。
好消息是,其他3种网络浏览器也不错!我发现针对Chrome,Firefox和Edge(在Windows 10中)运行webdrivers的driver.quit()命令成功关闭了这些浏览器,而iedriver版本没有关闭IE。
下面是我的代码,以防您想将其用于实验。
from selenium import webdriver
import time
browser_to_use = "Edge" # "Chrome" "Firefox" "Ie"
if browser_to_use == "Chrome":
driver = webdriver.Chrome()
elif browser_to_use == "Firefox":
driver = webdriver.Firefox()
elif browser_to_use == "Ie": # This sucks!
driver = webdriver.Ie()
time.sleep(5)
elif browser_to_use == "Edge":
driver = webdriver.Edge()
driver.get("http://testwisely.com/demo")
time.sleep(5)
driver.quit()
答案 2 :(得分:0)
Chromedriver可能在后台运行,请检查任务管理器中的后台进程。
如果您发现多个chromedriver实例正在运行,请手动终止所有进程并尝试再次运行该程序。
你应该好好去。
答案 3 :(得分:0)
下载旧版本(3.8)也可以解决此问题,但是测试运行速度非常慢...
您可以在此处找到链接:https://github.com/jovanbulck/sgx-step/tree/master/app/foreshadow