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

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

钦海荣
2023-03-14

我正在使用Microsoft WebDriver服务器来自动化Microsoft Edge。

    null

如果手动关闭Edge,则WebDriver服务器发送响应:{“sessionid”:null,“status”:13,“value”:{“message”:“unknown error”}}

你知道会出什么问题吗?是否有我可以收集的日志或其他诊断信息来帮助调试?

我运行的是Edge build 10240(和Windows10 build 10240,即公共版本)。我已经在虚拟机和物理机上复制了这个。

"C:\Program Files (x86)\Microsoft Web Driver\MicrosoftWebDriver.exe" --port=4444 --host=192.168.20.248
import logging
import time

from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

try:
    driver = webdriver.Remote(
        command_executor='http://192.168.20.248:4444',
        desired_capabilities=DesiredCapabilities.CHROME)
    driver.get('http://www.example.com')
    driver.get('http://www.google.com')
    driver.quit()
except WebDriverException as e:
    logging.warning('caught error: %s' % e)
#!/bin/bash

wd_remote="http://192.168.20.248:4444"

echo "STATUS: $(curl -s ${wd_remote}/status)"

resp=$(curl -sd '{"desiredCapabilities": {"browserName":"MicrosoftEdge"}}' "${wd_remote}/session")
session_id=$(echo "${resp}" | sed -rn 's/.*"sessionId":"([^"]+).*/\1/ p')
if [[ -z "${session_id}" ]]; then
    echo "error starting session: ${resp}"
    exit 1
fi
echo "started session ${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 "quit session ${session_id}"

几分钟后,我可以看到来自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"}}"

共有1个答案

端木高邈
2023-03-14

我目前也需要使用自动Edge浏览器。据我目前所知,在不同于“localhost”的IP上启动WebDriver需要一个提升的命令行。否则,我将得到一个错误:“HttpAddurlTourlGroup失败,使用183”。

但据我所知,现在不支持在提升的cmd中运行,这导致了一个问题,即Edge浏览器目前只能从运行浏览器本身的机器上自动运行。

 类似资料:
  • 我有一个服务器(40GB RAM),java进程在启动时挂在上面。如果我简单地在shell上键入“java”,它会打印帮助消息,然后永远不会退出。 PID用户PR NI VIRT RES SHR S%cpu%mem时间+命令 13根15-5 0 0 0 S 88 0.02302:14 ksoftirqd/3 25根15-5 0 0 0 S 73 0.02782:56 ksoftirqd/7 4根1

  • 问题内容: 我在运行Eclipse时遇到问题。我用Java6和Java7尝试了3.7、4.2和4.3版本。没有任何帮助。它显示了弹出屏幕,但没有开始加载(我没有选择工作空间的机会)。使用参数启动它表明此刻它停止运行: 我已经启动了JVisualVM,但是看不到任何特殊的东西。没有死锁等。 编辑 我的观察非常深刻…约60秒钟的日食死亡后。 编辑2 现在停止 编辑3 我设法启动了它,但仅使用参数并从命

  • 我的假设是,如果处理器对两个边都有传入项,并且其中一个tryProcess()返回false,那么将处理另一个边(如果在这样的边上有更多的传入项)。根据哪个边缘停止处理和哪个边缘接受它们来交替传入项。 有时会发生一个处理器实例阻塞tryProcess(#0),它总是返回false(因为我们希望处理来自其他edge的新项)。tryProcess(#0)被重新调用,而tryProcess(#1)从不被

  • 我的MySQL不会启动,它显示如下: 然后是错误日志: 这些错误的原因是什么?我如何纠正它们?

  • 问题内容: 我刚接触selenium。我生成了我的第一个Javaselenium测试用例,它已成功编译。但是当我运行该测试时,我得到了以下RuntimeException 请告诉我如何解决此错误。 这是我要运行的Java文件。 我首先通过命令提示符启动了selenium服务器,然后通过另一个命令提示符执行了上述java文件。 第二个问题:我可以右键单击包含selenium的网页上的指定位置。 问题

  • 我正试图使用Appium从mac上的Android应用程序启动我的应用程序。应用程序 或使用我的代码,但我得到一个错误 无法启动新会话。 确保Appium服务器运行的应用程序是通过使用Appium中的“App Path”参数打开的。应用程序(以及适用于Android的软件包和 活动)或通过连接selenium客户端,并 在所需的功能对象中提供此功能。" 下面是我的Appium日志,我在这里做错了什