Что такое ошибка "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')