Причина, по которой вы не можете войти в систему, заключается в том, что ваш код не может найти element by xpath
, который вы указали.Возможно, это связано с тем, что указанный вами xpath не поддерживается.
Я нашел обходной путь для этого, где я использую функцию find_elements_by_tag_name()
, которая возвращает мне список кнопок, и с помощью простой итерации я обнаружил, чтовторая возвращенная кнопка соответствует кнопке входа в Instagram.Итак, вот рабочий код, который вы найдете полезным.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from time import sleep
import User_data
chrome_options=Options()
chrome_options.add_argument('--lang=en')
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get("https://www.instagram.com/accounts/login/")
sleep(1)
browser.find_element_by_name("username").send_keys(User_data.username)
browser.find_element_by_name("password").send_keys(User_data.password)
sleep(2)
buttons = browser.find_elements_by_tag_name('button')
for button_element in buttons:
print(button_element.text) #- This will print the text of the buttons present
Это напечатает вам поля text
всех кнопок: Вывод:
Show
Log in
Log in with Facebook
Это три кнопки, которые входят в мой вывод, и так как мне нужно нажать на кнопку с Log in
в ее тексте, который является вторым элементом в моем списке buttons[]
, я использую индекс 1, чтобы обозначить это, и нажимаюэто.
buttons[1].click()