Что такое ошибка "AttributeError: объект" str "не имеет атрибута" native_events_enabled"?" появляется при использовании селена с питоном

Здесь мое требование состоит в том, чтобы войти на одну веб-страницу, используя указанный ниже блок кода. используя 2.7.13, селен 2.45.0, Windows 10.

     class WebJIRA:

       driverpath = "path\to\geckodriver.exe"
       driver = webdriver.Firefox(driverpath)
       ConfigRead.defaultvalues()

       def login_page(self,username):
         WebJIRA.webdriver.get(jirausername)

     main = WebJIRA()
     main.login_jira()

но выкидывает ошибку ниже.

File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 46, in __init__
    self.NATIVE_EVENTS_ALLOWED and self.profile.native_events_enabled)
AttributeError: 'str' object has no attribute 'native_events_enabled'

Может кто-нибудь, пожалуйста, помогите мне пройти через это. Я новичок в питоне. Этот вопрос объясняет, как обращаться с firefoxprofile, когда он передается как 'str', в моем случае я должен передать переменную (которая содержит путь geckodriver), но обе ошибки одинаковы.

2 ответа

Это подпись веб-драйвера Firefox:

class selenium.webdriver.firefox.webdriver.WebDriver(firefox_profile=None, firefox_binary=None, timeout=30, capabilities=None, proxy=None, executable_path='geckodriver', options=None, log_path='geckodriver.log', firefox_options=None, service_args=None)

Первый аргумент - это профиль Firefox, а не исполняемый файл драйвера. Вам придется использовать ключевое слово аргумент.

driver = webdriver.Firefox(executable_path=driverpath)

Я думаю, вы скопировали пример, используя webdriver.Chrome, который занимает executable_path как это первый аргумент. Они не имеют одинаковую подпись.

@jbch ответ был в правильном направлении. Вам нужно передать ключ executable_path наряду со значением, относящимся к абсолютному пути двоичного файла GeckoDriver, следующим образом. Кроме того, поскольку вы работаете в ОС Windows, абсолютный путь двоичного файла GeckoDriver должен быть следующим:

  • В одинарных кавычках (т.е. '').
  • Предшествует сырье (т.е. r) переключатель.
  • Путь отделяется одной передней косой чертой (т.е. \)
  • Строка кода будет:

    driver = webdriver.Firefox(executable_path=r'C:\path\to\geckodriver.exe')
    
Другие вопросы по тегам