Ваша строка кода email_box = driver.find_element_by_xpath ("// form [1]") находит форму, а не поля ввода. Вы можете проверить это с помощью атрибутов и методов WebElement:
- get_attribute (name) (значение атрибута name элемента)
- text (текст в элементе, например 'hello'in hello)
Пример:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
email_box = driver.find_element_by_xpath("//form[1]")
print(email_box.text)
Вывод:
'Sign In\nI forgot my password\nSIGN IN\nCreate an account'
Так вот для чего Ваш браузер.find_element_by_xpath ("// form [1] ") найдено.
Существует много способов получить доступ к этому полю электронной почты и проверить его.
Если вы уверены, что веб-страница останется прежней, вы можете использовать XPATH для этого вводаполе:
xp='/html/body/div[2]/div/form/div[1]/div/div[2]/input'
email_box = driver.find_element_by_xpath(xp)
email_box.send_keys('Test')
Другой способ - собрать все входные данные и идентифицировать их. Это больше для того, чтобы знать, что к чему, чем находить и использовать поле электронной почты напрямую. :
input_list = driver.find_elements_by_class_name("input")
for field in input_list:
print(input_list.index(i), i.get_attribute('placeholder'))
Вывод:
0 Username
1 Email
2 Password
Итак, теперь вы знаете, что есть 3 поля ввода, второе - это адрес электронной почты, после чего идет пароль. Предполагая, что эта страница останется прежней. Теперь вы можете заполнить их текстом:
input_list[1].send_keys('email@email.com')
input_list[2].send_keys('Secret_password')
Вы также можете написать что-то самостоятельно на входе и попытаться определить значение (тест уже выполнен из предыдущего кода):
xp='/html/body/div[2]/div/form/div[1]/div/div[2]/input'
email_box = driver.find_element_by_xpath(xp)
email_box.get_attribute('value')