Использование драйвера селена IE с python

я пытаюсь определить веб-драйвер IE для работы с python, и у меня есть некоторые ошибки, которые я не могу понять. Может быть, мне нужно изменить некоторые настройки безопасности в Internet Explorer? У меня есть Interent Explorer версии 11, спасибо.

from selenium import webdriver

driver = webdriver.Ie(executable_path=r"C:\Users\cohe\PycharmProjects\Testing\IEDriverServer.exe")

i got some errors:

Traceback (most recent call last):
  File "C:/Users/cohe/PycharmProjects/Testing/Shrepoint.py", line 3, in <module>
    driver = webdriver.Ie(executable_path=r"C:\Users\cohe\PycharmProjects\Testing\IEDriverServer.exe")
  File "C:\Users\cohe\AppData\Roaming\Python\Python38\site-packages\selenium\webdriver\ie\webdriver.py", line 54, in __init__
    warnings.warn('executable_path has been deprecated, please pass in a Service object',
NameError: name 'warnings' is not defined

Примечание. Я использую селен 4.0.0a1.


person ניב בדלי    schedule 25.08.2020    source источник
comment
Отвечает ли это на ваш вопрос? Python Selenium 4 - FirefoxFirefoxBinary() устарел   -  person Challe    schedule 25.08.2020


Ответы (2)


Какую версию селена вы используете?

Если вы посмотрите на привязки селена python здесь:

Вы можете увидеть 2 ключевые части:

 - executable_path - Deprecated: path to the executable. If the default is used it assumes the executable is in the $PATH

а также

if executable_path != 'IEDriverServer.exe':
            warnings.warn('executable_path has been deprecated, please pass in a Service object',
                          DeprecationWarning, stacklevel=2)

Они были удалены в привязках selenium 4 alpha 1.

Ваш первый и лучший вариант:

Предполагая, что у вас есть последняя версия селена v4 — она находится в стадии альфа-тестирования и подлежит дальнейшим и частым изменениям. Если вам не нужна передовая функция, вы можете откатить свою версию до последней стабильной версии. Это должно разрешить исполняемый путь снова.

Следующие варианты: ошибка/предупреждение выдается только если вы попытаетесь указать путь. Подсказка в вашей ошибке:

'executable_path устарел, пожалуйста, передайте объект службы'

Поэтому не указывайте :-)

Можешь попробовать:

  1. Добавьте свое местоположение IeDriverSerice.exe в переменную PATH.
  2. Поместите файл IeDriverService.exe в то же место, что и сценарий. Тогда его можно не указывать и можно оставить по умолчанию
  3. Создайте объект службы и посмотрите, принимает ли он двоичный путь.
person RichEdwards    schedule 25.08.2020
comment
Здравствуй ! Большое спасибо за ваш ответ. - person ניב בדלי; 26.08.2020
comment
я использую селен 4.0.0a1, и я не могу понять, где я могу найти IEdriver для этой версии селена. вы знаете, где я могу найти его? спасибо ! - person ניב בדלי; 26.08.2020
comment
@ניבבדלי Если вы работаете с Python, используйте pip install selenium. И получите драйвер ie с веб-сайта селена selenium.dev/downloads. - person RichEdwards; 26.08.2020
comment
@RichEdwards Обязательно посетите чат-комнату Selenium и помогите другим пользователям. - person DebanjanB; 20.10.2020

Не совсем понятно, какая версия Selenium python клиентов, которые вы используете. Однако последней стабильной версией клиента Selenium Python является v3.141.0.

SeleniumPythonAlpha

Поэтому для производственной среды вместо Selenium 4.0.0a1 вам нужно использовать Selenium 3.141.0.

Кроме того, поскольку вы используете переключатель raw, то есть r, вместо двойных кавычек вам необходимо использовать одинарные кавычки. Эффективно ваша строка кода будет:

driver = webdriver.Ie(executable_path=r'C:\Users\cohe\PycharmProjects\Testing\IEDriverServer.exe')
person DebanjanB    schedule 25.08.2020
comment
привет, это не проблема .. я получил ту же ошибку и попробовал оба способа - person ניב בדלי; 25.08.2020
comment
@ניבבדלי Ознакомьтесь с обновленным ответом и дайте мне знать, что вы думаете об этом. - person DebanjanB; 27.08.2020