Windows Edge Webdriver失败,并出现WebDriverException:消息:未知错误

时间:2019-12-18 15:03:05

标签: python selenium microsoft-edge circleci python-behave

我正在尝试在CircleCI中的Windows Edge上运行behave测试,但是即使是简单测试也无法通过

初始化会话
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\circleci\AppData\Roaming\Python\Python36\site-packages\selenium\webdriver\edge\webdriver.py", line 66, in __init__
    desired_capabilities=capabilities)
  File "C:\Users\circleci\AppData\Roaming\Python\Python36\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Users\circleci\AppData\Roaming\Python\Python36\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Users\circleci\AppData\Roaming\Python\Python36\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\circleci\AppData\Roaming\Python\Python36\site-packages\selenium\webdriver\remote\errorhandler.py", line 208, in check_response
    raise exception_class(value)
selenium.common.exceptions.WebDriverException: Message: Unknown error

设置

我使用标准的CircleCI Windows图像windows-server-2019-vs2019:stable

在此处安装Edge驱动程序,然后尝试将其作为服务启动:

choco install -y jdk10 selenium-edge-driver selenium

然后我将SSH送至计算机进行调试,然后尝试

python -c "from selenium import webdriver; webdriver.Edge()"

这将导致上述错误。 Web驱动程序的路径正确,不正确会导致另一个错误。

已尝试

  1. 关闭UAC(使用cmd.exe):
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v PromptOnSecureDesktop /t REG_DWORD /d 0 /f
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f
  1. 尝试使用Chrome设置进行连接:

独自管理服务器:

/c/tools/selenium/MicrosoftWebDriver.exe
[14:48:13.545] - Listening on http://localhost:17556/
python -c "from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver; from selenium.webdriver.common.desired_capabilities import DesiredCapabilities; from selenium.webdriver.chrome.remote_connection import ChromeRemoteConnection; rwd = RemoteWebDriver(command_executor=ChromeRemoteConnection(remote_server_addr='http://localhost:17556', keep_alive=False))"

这会导致401错误的错误请求,或者如果我更新desired_capabilities诸如此类的结果:

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: No matching capabilities found
  1. 试图将Edge二进制文件更改为https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/中的最新版本,但仍然存在相同的问题。

1 个答案:

答案 0 :(得分:0)

当前,尚无法在CircleCI映像上安装Edge。但是,如果BrowserStack之类的服务不适合您,则可以使用一种方法在自己的/ AWS计算机上使用Windows / Edge运行Selenium,以部署官方的Vagrant映像。

  1. 下载official VM with Edge installed(流氓就可以了)
  2. 如果您打算使用AWS,请选中vagrant-aws以在EC2上部署映像
  3. 在Vagrant映像上安装Selenium。您可以尝试使用Puppet,选中this example,但是它使用的Edge版本已过时,您需要更新the manifest
  4. 花一些时间设置权限/角色和其他IAM内容,以便能够从CircleCI连接到EC2。
  5. 现在使用webdriver.Remote,可以使用Edge和安装了它的Web驱动程序连接到Selenium(集线器或独立的)。