Как отправить текст в поле Email на странице входа в Twitter с помощью Selenium и Python - PullRequest
2 голосов
/ 07 февраля 2020

Код для текстовой области имени пользователя выглядит следующим образом. У него нет идентификатора, и xpath также не работает.

Элемент из Twitter выглядит следующим образом

<input autocapitalize="none" autocomplete="on" autocorrect="off" name="session[username_or_email]" spellcheck="false" type="text" dir="auto" data-focusable="true" class="r-30o5oe r-1niwhzg r-17gur6a r-1yadl64 r-deolkf r-homxoj r-poiln3 r-7cikom r-1ny4l3l r-1inuy60 r-utggzx r-vmopo1 r-1w50u8q r-1swcuj1 r-1dz5y72 r-1ttztb7 r-13qz1uu" value="">

Ответы [ 2 ]

1 голос
/ 07 февраля 2020
//input[@name="session[username_or_email]" and @type="text"]
0 голосов
/ 07 февраля 2020

Чтобы отправить последовательность символов в поле Email со страницей входа в Twitter https://twitter.com/login, вам нужно вызвать WebDriverWait для element_to_be_clickable(), и вы можно использовать любую из следующих стратегий локатора :

  • Использование CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='session[username_or_email]']"))).send_keys("zeecode")
    
  • Использование XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='session[username_or_email]']"))).send_keys("zeecode")
    
  • Примечание : необходимо добавить следующий импорт:

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