#python #selenium #selenium-webdriver #webdriver #webdriverwait
#python #селен #selenium-webdriver #webdriver #webdriverwait
Вопрос:
Я делаю программу selenium, которая может входить в мою электронную почту, но у меня проблемы с By
, и это не может быть By.name("")
или кажется.
Вот упомянутая часть кода: (работает в Windows 7):
psswd = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.name, "password")))
psswd.send_keys("MyPassword")
Комментарии:
1.
print(type(By))
2. @JacobIRR Почему? Где?
3. где угодно, что скажет нам, что на самом деле есть
Ответ №1:
Вы были почти там. Вам нужно внести простое изменение следующим образом:
- Вам нужно заменить
name
наNAME
Фактически, ваша строка кода будет:
psswd = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.NAME, "password")))
psswd.send_keys("MyPassword")
Ответ №2:
Если вы столкнулись с этой ошибкой, тогда будут некоторые исключения, такие как:
- вы используете By.name возможно, вам следует использовать By.NAME
- вы можете получить список объектов!
- возможно, вы не импортированы
By
, чтобы импортировать его, напишитеfrom selenium.webdriver.common.by import By
или я предлагаю вам использовать find_elements_by_xpath
для более эффективного поиска вашего элемента вот пример кода:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
browser = webdriver.Firefox()
browser.get('https://www.facebook.com')
msg = 'KA_ME_HA_ME_HAAA'
username = browser.find_elements_by_xpath('//*[@id="email"]')
username[0].send_keys(msg)
browser.close()