Селен Не удалось найти элемент: ошибка - PullRequest
1 голос
/ 10 июля 2019

Я пытаюсь сделать что-то в селене, мне нужно отправить имя пользователя и пройти, но я получил эту ошибку. Я работаю на pythonanywhere

я пробовал time.sleep (20-60), имплицитное ожидание.

display = Display(visible=0, size=(1024, 768))
    display.start()
    browser = webdriver.Firefox()
    browser.get("https://twitter.com/login")
    time.sleep(30)
    username = browser.find_element_by_xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[1]/input")
    password = browser.find_element_by_xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[2]/input")

Моя ошибка:

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"xpath","selector":"//*[@id='page-container']/div/div[1]/form/fieldset/div[1]/input"}

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Это работает для меня, хотя это в Scala, хотя селектор все равно должен быть верным.

driver.findElements(By.cssSelector("input[name='session[username_or_email]']")).get(1).sendKeys("some username")
    driver.findElements(By.name("session[password]")).get(1).sendKeys("some password")

Сначала я попытался

driver.findElement(By.cssSelector("input[name='session[username_or_email]']")).sendKeys("some username")

, но этоне удалось, элемент не взаимодействовал, но заметил, что он имеет размер 3, поэтому попробовал метод findElements, который работал с индексом 1

0 голосов
/ 10 июля 2019

Убедитесь, что страница успешно загружена и поле имени пользователя отображается с помощью WebDriverWait.

Нужен нижеуказанный импорт

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

Сценарий:

userName = WebDriverWait(browser,30).until(EC.presence_of_element_located((By.XPATH,"//*[@id='page-container']/div/div[1]/form/fieldset/div[1]/input")))
# now try entering the value in userName
userName.send_keys("valueGoesHere")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...