Я пытаюсь написать функцию входа в систему. Когда я пытаюсь войти в свою учетную запись Yahoo, я отправляю правильные ключи для своего адреса электронной почты, который работает, но затем, когда я нажимаю «далее», он «пропускает» клик и вместо этого нажимает на баннер, который открывает какую-то рекламу. это связано с путешествием, или Нортон анти-безопасности, или что-то. В течение прошлой недели я периодически работал над этим вопросом, занимаясь серфингом и копаясь в форумах, прежде чем наконец сделать свой первый пост.
Мне известны различные способы выбора элементов с помощью css, id, имени класса, xpath и т. Д. c ... Я пробовал sleep (), implicit_wait (), что-то в этом духе. Я также пытался что-то с ожиданием, пока не кликабельно с модулем ожидаемых условий от selenium.webdriver.
Я прикрепил изображение того, что у меня есть. Моя python версия актуальна, так же как и мои селеновые и chrome установки драйверов. Я уже видел похожий пост, но ОП, похоже, не сталкивался с моей проблемой. ( как щелкнуть по ссылке для входа в Yahoo с помощью веб-драйвера selenium? )
Я тоже это попробовал, и он открывает рекламу; в моих казнях Нортон кажется наиболее часто появляющейся рекламой. ( войдите в Yahoo, используя Python Selenium )
Я просмотрел документацию по API, но, похоже, нет четкого указания, что я мог бы сделать. Я приложил скриншоты того, что происходит при запуске скрипта, а также код, который у меня есть.
Я заставил его работать для некоторых запусков, когда я смог go перейти к следующей форме, чтобы отправить ключи моего пароля, но это произошло случайно и необъяснимо.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from login import password, email
from time import sleep
class yahoo():
def __init__(self):
# INITIALIZE CHROME WEBDRIVER
self.driver = webdriver.Chrome()
self.driver.maximize_window()
def login(self):
# OPEN BROWSER TO LOGIN PAGE AND MAXIMIZE
self.driver.get("https://login.yahoo.com/config/login?.\
src=fpctx&.intl=us&.lang=en-US&.done=https://www.yahoo.com")
# LOGIN ACTIONS
{# 1. send email address and click next
self.driver.find_element_by_id('login-username').send_keys(email)
element = WebDriverWait(self.driver, 10).until(\
EC.presence_of_element_located((By.ID, "login-signin")))
element.click()
# 2. send password and click sign in
self.driver.find_element_by_xpath('//*[@id="login-passwd"]').send_keys(password)
self.driver.find_element_by_id('login-signin').click()}`enter code here
x = yfscreeners()
x.login()
Любая помощь хорошо ценится.