Python脚本无法打开Microsoft边缘

时间:2018-01-11 14:57:47

标签: python selenium selenium-webdriver microsoft-edge microsoft-webdriver

[找到解决方案,见下文]

我正在使用以下Python脚本(使用Python 2.7)打开Microsoft Edge并浏览到www.freelancer.in(使用Selenium 3.8.1):

import os
from selenium import webdriver

# create new Edge session
dir = os.path.dirname(__file__)
edge_path = dir + "\MicrosoftWebDriver.exe"
driver = webdriver.Edge(edge_path)
driver.implicitly_wait(10)

driver.get("https://www.freelancer.in/")

它在我的本地计算机上正常运行:Windows Pro版本1709,操作系统16299.125。但是,它无法在我的虚拟机上运行...我无法弄清楚为什么因为我安装了完全相同的Windows 10 Pro,我使用相同的Microsoft Webdriver.exe(16299.15)。 Microsoft WebDriver.exe似乎正在工作,因为它说:

[15:32:45.548] - Listening on http://localhost:17556/

但之后,我收到以下错误:

Traceback (most recent call last):
  File "C:\Users\program.py", line 9, in <module>
    driver = webdriver.Edge(edge_path)
  File "C:\Python27\lib\site-packages\selenium\webdriver\edge\webdriver.py", line 43, in __init__
    desired_capabilities=capabilities)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 154, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 243, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
    self.error_handler.check_response(response)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 208, in check_response
    raise exception_class(value)
WebDriverException: Message: Unknown error

我没有在Microsoft Edge中找到任何特定的配置。 什么可能导致这个错误的想法?

=&GT;在那里找到解决方案:selenium.common.exceptions.WebDriverException: Message: Unknown error while trying to use Edge and MicrosoftWebDriver.exe through Selenium 它无法在虚拟机上运行,​​因为用户帐户控制设置已关闭...启用UAC解决了该问题。

3 个答案:

答案 0 :(得分:0)

错误说明了一切:

ReferenceError: stuff is not defined

很明显,selenium.common.exceptions.WebDriverException: Message: Unknown error 实例未被调用。因此,您必须将 edge_path webdriver executable_path 一起传递,如下所示:

argument

答案 1 :(得分:0)

我遇到Edge的相同问题。调用Edge浏览器不需要任何特定的配置。以下代码足以打开它:

from selenium.webdriver import Edge
driver = Edge()

与您的情况一样,它在笔记本电脑上对我来说也可以正常工作-但在带有Win10的虚拟机上不行...所以我想我们这里有可能的模式。

您使用Microsoft Webdriver.exe 16299.15编写了试用版。您也可以尝试从microsoft起使用较新的版本17134。它对我没有用,但对您有用。

还应该可以直接从Win10安装中获取Microsoft Webdriver.exe:设置→应用程序→管理可选功能→添加功能→Microsoft WebDriver。这应该将Microsoft Webdriver直接安装到您的计算机上,并将其添加到PATH。

顺便说一句...如果在PATH中设置了MicrosoftWebDriver.exe,则不需要通过edge_path。

答案 2 :(得分:0)

=>在那里找到解决方案:selenium.common.exceptions.WebDriverException:消息:尝试通过Selenium使用Edge和MicrosoftWebDriver.exe时发生未知错误在虚拟机上无法正常工作,因为用户帐户控制设置已关闭。 ..开启UAC解决了该问题。