Selenium Microsoft WebDriver在启动新边缘会话时挂起,不响应进一步的请求 开场白
我正在使用Microsoft Edge实现自动化 在我尝试的前2-3次中,我能够启动浏览器,但随后的尝试似乎会导致WebDriver服务器挂起。发送新会话命令时:Selenium Microsoft WebDriver在启动新边缘会话时挂起,不响应进一步的请求 开场白,selenium,webdriver,microsoft-edge,Selenium,Webdriver,Microsoft Edge,我正在使用Microsoft Edge实现自动化 在我尝试的前2-3次中,我能够启动浏览器,但随后的尝试似乎会导致WebDriver服务器挂起。发送新会话命令时: WebDriver服务器记录它收到了/session请求 任何现有的Edge实例都会被服务器强制杀死 将打开一个新的边缘窗口(到“新建”选项卡页面) 没有别的事情发生WebDriver服务器从不发送响应。 此时Edge完全可用。我可以手动将其导航到页面,否则它会完全正常工作 另一方面,当新会话请求挂起时,WebDriver服务器不会响
curlhttp://192.168.20.248:4444/status
将挂起,服务器也不会记录任何传入的请求。(不过,我想这可能是有意为之的行为?)
如果我手动关闭Edge,则WebDriver服务器发送一个响应:{“sessionId”:null,“status”:13,“value”:{“message”:“unknown error”}
你知道会出什么问题吗?我是否可以收集任何日志或其他诊断信息来帮助调试
细节
我正在运行Edge build 10240(和Windows 10 build 10240,即公共版本)。我在虚拟机和物理机上都复制了这一点
在Windows 10计算机上,我以管理权限在命令提示符下运行WebDriver服务器:
"C:\Program Files (x86)\Microsoft Web Driver\MicrosoftWebDriver.exe" --port=4444 --host=192.168.20.248
在一台单独的Linux机器上,我运行这个客户机代码。它在到达.get
调用之前挂起
导入日志
导入时间
从selenium导入webdriver
从selenium.common.exceptions导入WebDriverException
从selenium.webdriver.common.desired_功能导入DesiredCapabilities
尝试:
driver=webdriver.Remote(
命令执行者http://192.168.20.248:4444',
期望的功能=期望的功能.CHROME)
司机,上车http://www.example.com')
司机,上车http://www.google.com')
driver.quit()
除了WebDriverException作为e:
日志记录。警告('捕获的错误:%s“%e”)
我还可以使用原始连线协议来复制行为,不管它值多少钱。到/session
的卷曲永远不会结束
#/bin/bash
wd_远程=”http://192.168.20.248:4444"
echo“状态:$(curl-s${wd_remote}/STATUS)”
resp=$(curl-sd'{“desiredCapabilities”:{“browserName”:“MicrosoftEdge”}'${wd_remote}/session)
session_id=$(echo“${resp}”| sed-rn的/*“sessionId”:“([^”]+)./\1/p')
如果[[-z“${session_id}”];然后
echo“启动会话时出错:${resp}”
出口1
fi
echo“已启动会话${session_id}”
curl-s-d'{“url”:”http://www.google.com“}'${wd_remote}/session/${session_id}/url”
curl-s-XDELETE“${wd_remote}/session/${session_id}”
echo“退出会话${session_id}”
更新(wilx)
我可以在几分钟后看到EdgeWebDriver的响应,这表示超时:
2016-01-20 11:38:19 DEBUG org.apache.http.wire:72 - http-outgoing-3 << "HTTP/1.1 200 OK[\r][\n]"
2016-01-20 11:38:19 DEBUG org.apache.http.wire:72 - http-outgoing-3 << "Content-Type: application/json;charset=UTF-8[\r][\n]"
2016-01-20 11:38:19 DEBUG org.apache.http.wire:72 - http-outgoing-3 << "Server: Microsoft-HTTPAPI/2.0[\r][\n]"
2016-01-20 11:38:19 DEBUG org.apache.http.wire:72 - http-outgoing-3 << "Access-Control-Allow-Origin: *[\r][\n]"
2016-01-20 11:38:19 DEBUG org.apache.http.wire:72 - http-outgoing-3 << "Date: Wed, 20 Jan 2016 10:38:19 GMT[\r][\n]"
2016-01-20 11:38:19 DEBUG org.apache.http.wire:72 - http-outgoing-3 << "Content-Length: 60[\r][\n]"
2016-01-20 11:38:19 DEBUG org.apache.http.wire:72 - http-outgoing-3 << "[\r][\n]"
2016-01-20 11:38:19 DEBUG org.apache.http.wire:86 - http-outgoing-3 << "{"sessionId":null,"status":21,"value":{"message":"Timeout"}}"
2016-01-20 11:38:19调试org.apache.http.wire:72-http-outing-3我目前也需要使用自动边缘浏览器。
据我所知,到目前为止,在不同于“localhost”的IP上启动WebDriver需要一个提升的命令行。否则我会得到一个错误:“HttpAddUrlToUrlGroup失败,错误为183”
但据我所知,目前不支持在提升的cmd中运行,导致问题的原因是,边缘浏览器目前只能从运行浏览器本身的机器上自动运行。+1。我也试过这个版本,看起来更新了几个月。我试图从Java应用程序启动驱动程序,该应用程序本身是使用不相关的提示符启动的,但它甚至无法启动。通过提升提示,它至少可以启动驱动程序。