Исключение в Selenium webdriver (IE) в python - PullRequest
0 голосов
/ 07 мая 2020

Ниже мой код python,

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
print("brower1\n")
browser = webdriver.Ie('C:\Program Files (x86)\Internet Explorer\iexplore.exe')
print("brower2\n")

Я получаю исключение в webdriver.Ie(), после этого print оператор print("brower2") не выполняется ....

Упомянутая ниже моя ошибка исключения:

Traceback (most recent call last):
  File "automated_vpn.py", line 8, in <module>
    browser = webdriver.Ie('C:\Program Files (x86)\Internet Explorer\iexplore.ex
e')
  File "C:\Program Files (x86)\python\lib\site-packages\selenium\webdriver\ie\we
bdriver.py", line 91, in __init__
    self.iedriver.start()
  File "C:\Program Files (x86)\python\lib\site-packages\selenium\webdriver\commo
n\service.py", line 98, in start
    self.assert_process_still_running()
  File "C:\Program Files (x86)\python\lib\site-packages\selenium\webdriver\commo
n\service.py", line 109, in assert_process_still_running
    raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: Service C:\Program Files
 (x86)\Internet Explorer\iexplore.exe unexpectedly exited. Status code was: 1

пожалуйста, помогите мне в этой проблеме ...

Ответы [ 2 ]

0 голосов
/ 21 мая 2020

Путь должен иметь двойной sla sh или перед ним должен стоять r, например r "c: \ Program Files (x86) \ file.exe"

Но указанный путь должен иметь IE веб-сервер, а не rnet проводник. Загрузите из здесь и добавьте путь к переменной пути вашей среды или укажите полный путь. Эти драйверы в указанной ссылке были протестированы с IE 7, 8, 9, 10 и 11 в соответствующих комбинациях Vista, Windows 7, Windows 8 и Windows 8.1. Версия сервера 3.9 довольно стабильна, но всегда рекомендуется последняя версия драйвера. Итак, это должно быть

browser = webdriver.Ie(executable_path=r'C:\Python27\IEDriverServer.exe')

Путь к IEDriverServer.exe должен быть включен в path.

Теперь это будет работать, только если

  1. У вас одинаковые настройки защищенного режима для всех зон inte rnet в проводнике
    inte rnet. Он может быть включен или выключен, но должен быть одинаковым для всех зон
    .

  2. Только для IE11 должен присутствовать параметр реестра. Для 32-разрядной версии Windows HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Inte rnet
    Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE. Для 64-разрядных установок Windows
    ключ:
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Inte rnet
    Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE. Обратите внимание, что подраздел
    FEATURE_BFCACHE может присутствовать, а может и не присутствовать, и должен быть создан
    , если он отсутствует. Важно: внутри этого ключа создайте значение DWORD
    с именем iexplore.exe со значением 0.

  3. Существуют известные проблемы с 64-разрядным сервером IEDriver, поэтому рекомендуется вы используете 32-битный сервер, который автоматически запустит 32-битный IE браузер.

Все эти требования описаны здесь .

0 голосов
/ 07 мая 2020

Webdriver должен быть путем к драйверу соответствующего браузера. IE файлы драйверов можно найти здесь .

Я рекомендую вам загрузить 32-разрядный IE файл драйвера, распаковать его и поместить исполняемый файл в папку с программой и указать ссылку это вроде:

browser = webdriver.Ie("C:\\Script path\\IEDriverServer.exe")

Теперь при запуске скрипта он должен открывать IE браузер.

...