当前位置: 首页 > 知识库问答 >
问题:

Selenium web驱动程序:IE崩溃与"IE驱动程序的命令行服务器已停止工作"

端木望
2023-03-14

尝试使用IE运行Selenium Webdriver测试时,浏览器将启动,但会立即崩溃,错误为“IE驱动程序的命令行服务器已停止工作”。

  • IE失败的脚本在Chrome和Firefox中运行良好
  • Windows 10 IE 11.15.16299.0
  • Python 3.6.3(使用Python 2.7.14进行了尝试)
  • 32位IEDriverServer。exe版本3.5.0.0
  • 我按照安装说明在https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver

以下是Python报告的内容:

Traceback (most recent call last):
  File "tc_131.py", line 34, in <module>
    driver.set_page_load_timeout(30)
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 814, in set_page_load_timeout
    'pageLoad': int(float(time_to_wait) * 1000)})
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 306, in execute
    response = self.command_executor.execute(driver_command, params)
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 464, in execute
    return self._request(command_info[0], url, body=data)
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 526, in _request
    resp = opener.open(request, timeout=self._timeout)
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 526, in open
    response = self._open(req, data)
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 544, in _open
    '_open', req)
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 1346, in http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 1321, in do_open
    r = h.getresponse()
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 1331, in getresponse
    response.begin()
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 297, in begin
    version, status, reason = self._read_status()
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 258, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Users\brent\AppData\Local\Programs\Python\Python36-32\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

最简单的测试导致失败:

from selenium import webdriver

driver = webdriver.Ie()

driver.set_page_load_timeout(30)
driver.get('https://google.com')
driver.implicitly_wait(30)

共有2个答案

施令秋
2023-03-14

我也有类似的问题,但我正在使用c#had read herehttps://github.com/SeleniumHQ/selenium/issues/6085这解决了我的问题你可能需要通读讨论

    driver.FindElement(By.XPath("(//input[@id='Submit'])[2]")).Click();

我的理解是,在IE中,上面的语法不起作用,但你可能想用这个来代替

    IWebElement submit = driver.FindElement(By.XPath("(//input[@id='Submit'])[2]"));
        OpenQA.Selenium.Interactions.Actions buildersub = new OpenQA.Selenium.Interactions.Actions(driver);
        OpenQA.Selenium.Interactions.Actions hoverClicksub = buildersub.MoveToElement(submit).MoveByOffset(5, 5).Click();
        hoverClicksub.Build().Perform();
程飞星
2023-03-14

我昨天也有类似的问题:

起初,我尝试使用64位IEDriverServer运行。exe版本3.9.0.0,并且还具有ConnectionResetError:[WinError 10054]

然后我从这里下载32位IEDriverServer 3.9https://www.seleniumhq.org/download/

我的脚本现在正在工作,IE运行良好(即使没有设置executable_path(添加到PATH)和睡眠时间):

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

#driver = webdriver.Ie(executable_path="C:\\webdrivers\\IEDriverServer.exe")
driver = webdriver.Ie()
#driver.set_script_timeout(5.0)
#time.sleep(3)

driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
time.sleep(5)
driver.close()

也许,您需要将IEDriverServer的版本更新到3.9,而我的python版本更高,为3.6.5

此外,我还添加了两个寄存器键(用于32位和64位路径),如安装指令中所述:https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-配置

我希望这将有助于。。。

 类似资料:
  • 目前是否已知 Google 云端硬盘 API 示例命令行应用(云端硬盘命令行)可以正常工作?我已经下载了 Java 客户机库,并编译了示例应用程序(插入通过指定“已安装的应用程序”和“其他”创建的应用程序的客户机标识和密钥)。它运行并通知我在浏览器中访问以下链接: https://accounts.google.com/o/oauth2/auth?access_type=online (显然我的实

  • 问题内容: 我之前已经做过,但是似乎大脑停滞了,谷歌没有帮助 我有带有eclipse的Javaselenium2 Web驱动程序,我只想从命令行运行脚本(类,java)。 问题答案: 设置类路径,编译代码,然后运行代码。沿线的东西, 我建议您考虑使用Ant来构建代码,而不是像上面那样。

  • 问题内容: 今天,自动安装了最新版本的chrome浏览器,该版本现在为54.0.2840.71 m(64位)。我无法使用最新版本的Chrome驱动程序2.24和任何版本的Selenium来驱动浏览器。帮我解决这个问题..? 问题答案: 嗨,我已经解决了这个问题。Chrome 54或更低版本与Chrome驱动程序2.24兼容,而54或更高版本的Chrome需要Chrome驱动程序2.27。

  • 最近我换了电脑,从那以后我不能用硒启动chrome。我也尝试过Firefox,但浏览器实例就是无法启动。 我得到以下错误: 我安装了最新的chrome版本和chrome驱动程序 编辑:尝试@b0sss解决方案后,我收到以下错误。

  • 堆栈跟踪如下: 结果StackTrace:在OpenQa.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)在OpenQa.Selenium.Remote.Remote.DriverServiceCommandExecutor.Execute(命令commandToExecute)在Ope

  • 我正试图在eclipse中运行我的第一个webdriver脚本。使用jre1。8.0_1111. 我使用了下面的代码,但它显示了错误。请帮我查一下密码。 错误堆栈 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。壁虎。驱动系统属性;有关更多信息,请参阅github。com/mozilla/geckodr