Selenium Microsoft WebDriver在启动新边缘会话时挂起,不响应进一步的请求 开场白

Selenium Microsoft WebDriver在启动新边缘会话时挂起,不响应进一步的请求 开场白,selenium,webdriver,microsoft-edge,Selenium,Webdriver,Microsoft Edge,我正在使用Microsoft Edge实现自动化 在我尝试的前2-3次中,我能够启动浏览器,但随后的尝试似乎会导致WebDriver服务器挂起。发送新会话命令时: WebDriver服务器记录它收到了/session请求 任何现有的Edge实例都会被服务器强制杀死 将打开一个新的边缘窗口(到“新建”选项卡页面) 没有别的事情发生WebDriver服务器从不发送响应。 此时Edge完全可用。我可以手动将其导航到页面,否则它会完全正常工作 另一方面,当新会话请求挂起时,WebDriver服务器不会响

我正在使用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应用程序启动驱动程序,该应用程序本身是使用不相关的提示符启动的,但它甚至无法启动。通过提升提示,它至少可以启动驱动程序。