не могу нажать на кнопку с селеном - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь войти в свою учетную запись Twitter с помощью селена. Заполнение имени пользователя и пароля работает отлично, но при нажатии кнопки входа в систему ничего не происходит.

        self.driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/form/div/div[3]/div').click()

Я посмотрел на html -код и aria-haspopup на false. Есть ли способ установить его на true, чтобы я мог нажать кнопку?

Привет

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Попробуйте сделать это так:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get('https://twitter.com/login')

email = driver.find_element(By.NAME, 'email')
email.clear()
email.send_keys(EMAIL)
password = driver.find_element(By.NAME, 'pass')
password.clear()
password.send_keys(PASSWORD)

password.send_keys(Keys.RETURN) # Login with ENTER button
0 голосов
/ 18 апреля 2020

Ваш xpath хорошо работает на странице входа в Твиттер (https://twitter.com/login). Возможно, вы пытаетесь войти на другой странице.

Я предоставляю небольшой кусочек кода для входа в твиттер. Я использовал другие xpaths и WebDriverWait для ожидания отображения формы входа в систему.

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

driver = webdriver.Chrome()

driver.get('https://twitter.com/login')

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//input[@name='session[username_or_email]' and @data-focusable='true']")))

driver.find_element_by_xpath("//input[@name='session[username_or_email]' and @data-focusable='true']").send_keys('login')
driver.find_element_by_xpath("//input[@name='session[password]' and @data-focusable='true']").send_keys('password')

driver.find_element_by_xpath("//div[@data-testid='LoginForm_Login_Button']").click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...