Сценарий Python не может открыть край Microsoft
Я работаю со следующим скриптом 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. Есть идеи, что может быть причиной этой ошибки?
4 ответа
=> Решение найдено там: selenium.common.exceptions.WebDriverException: Сообщение: неизвестная ошибка при попытке использовать Edge и MicrosoftWebDriver.exe через Selenium. Это не работало на виртуальной машине, потому что настройки контроля учетных записей отключены... Включено на UAC решил проблему.
Ошибка говорит обо всем:
selenium.common.exceptions.WebDriverException: Message: Unknown error
Довольно ясно, что webdriver
Экземпляр не вызывается. Таким образом, вы должны передать edge_path вместе с argument
executetable_path выглядит следующим образом:
driver = webdriver.Chrome(executable_path=edge_path)
У меня такая же проблема с Edge. Не должно быть никакой конкретной конфигурации, необходимой для вызова браузера Edge. Для его открытия должно быть достаточно следующего кода:
from selenium.webdriver import Edge
driver = Edge()
Это работает нормально для меня на ноутбуке, как в вашем случае - но не на виртуальной машине с Win10... так что я думаю, что у нас есть возможный шаблон здесь.
Вы написали, что попробовали это с Microsoft Webdriver.exe 16299.15. Вы также можете попробовать более новую версию 17134 от Microsoft. Это не сработало для меня, но могло для вас.
Также предполагается, что можно получить Microsoft Webdriver.exe непосредственно из вашей установки Win10: Настройки → Приложения → Управление дополнительными функциями → Добавить функцию → Microsoft WebDriver. Это должно установить Microsoft Webdriver непосредственно на ваш компьютер и добавить его в PATH.
Кстати... edge_path не нужно проходить, если вы установили MicrosoftWebDriver.exe в PATH.
Попытайтесь добавить конкретную выдачу параметра в «исполняемый_путь» при создании экземпляра драйвера:
driver = webdriver.Edge(executable_path=edge_path)