Я пытаюсь написать этот код, используя Selenium и Python:

from selenium import webdriver


browser = webdriver.Firefox()
browser.get('http://demo.guru99.com/test/login.html')

from selenium.webdriver.common.keys import Keys

email = firefox.find_element_by_xpath('//*[@id="email"]')
email.send_keys('user@gmail.com')

passwd = firefox.find_element_by_xpath('//*[@id="passwd"]')
passwd.send_keys('123456')

Но я не понимаю, почему произошла эта ошибка, пожалуйста, помогите мне

0
João Felipe Holanda 19 Апр 2020 в 05:16

2 ответа

Лучший ответ

В своем коде вы создаете экземпляр объекта webdriver.Firefox () и называете его браузером

browser = webdriver.Firefox()

Позже в вашем коде вы пытаетесь найти элемент с помощью xpath, используя переменную с именем firefox

email = firefox.find_element_by_xpath('//*[@id="email"]')

Проблема в том, что Firefox никогда не был создан, я думаю, что вы хотели сделать, это

email = browser.find_element_by_xpath('//*[@id="email"]')
1
Ashoverflow 19 Апр 2020 в 02:47

Вы определяете переменную browser как объект веб-драйвера. Затем вы пытаетесь использовать firefox в качестве объекта веб-драйвера, но вы никогда не определяли переменную firefox. Это один из способов решить вашу проблему. Вам лучше вызывать переменную browser, а не firefox, потому что тогда вы можете просто изменить тип браузера в первой строке кода, и код не будет сбивать с толку.

browser = webdriver.Firefox()
browser.get('http://demo.guru99.com/test/login.html')

from selenium.webdriver.common.keys import Keys

email = browser.find_element_by_xpath('//*[@id="email"]')
email.send_keys('user@gmail.com')

passwd = browser.find_element_by_xpath('//*[@id="passwd"]')
passwd.send_keys('123456')
1
Doug Noel 19 Апр 2020 в 02:34