Итак, я первоначально разместил здесь сообщение о проблеме, нажав «Далее», чтобы продолжить вход в мою учетную запись Yahoo. (Исходное сообщение: Yahoo выполняет вход с помощью Selenium, отсутствует щелчок )
Я получил его на работу и смог войти в систему с кодом ниже на прошлых выходных, войдя в свой аккаунт, но сегодня, когда я пошел, чтобы показать своему профессору этот побочный проект, логин не сработал, потому что мой клик не прошел после ввода пароля. Вместо того, чтобы пройти «Далее», чтобы ввести пароль и завершить регистрацию, он нажимает на рекламу, я думаю, за окном формы. Изображение прикреплено ниже, например, но вот код, который работал изначально:
def login(self):
# SEND EMAIL KEYS
WebDriverWait(self.driver, 3).until(EC.element_to_be_clickable(\
(By.XPATH, "//input[@class='phone-no ' and @id='login-username']"))).send_keys(email)
# CLICK NEXT
self.driver.find_element_by_xpath("//input[@id='login-signin']").submit()
self.driver.implicitly_wait(5)
# SEND PASSWORD KEYS
self.driver.implicitly_wait(5)
WebDriverWait(self.driver, 5).until(EC.element_to_be_clickable(\
(By.XPATH, '//*[@id="login-passwd"]'))).send_keys(password)
# CLICK NEXT
WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable(\
(By.CSS_SELECTOR, '[class=button-container]'))).click()
Вместо этого он нажимает на рекламу, а не на кнопку в поле формы. В результате открывается совершенно другая вкладка, связанная с рекламой, будь то Norton или FreePass и т. Д. c ...
Я пытался исправить это в рабочее время, но ничего из этого не получалось. Я попробовал NAME, XPATH, CLASS, ID и т. Д. c ... Возможно, я неправильно их назвал, я забыл, что есть что, но я возвращался к документации, пробуя разные селекторы, и да, используя их правильно. Я попытался неявно_wait вместо того, чтобы использовать класс ExpectedConditions, но ничего из этого не сработало.
Однако вместо этого я попробовал приведенный ниже код:
def login(self):
# SEND EMAIL KEYS
WebDriverWait(self.driver, 3).until(EC.element_to_be_clickable(\
(By.XPATH, "//input[@class='phone-no ' and @id='login-username']"))).send_keys(email)
# CLICK NEXT
self.driver.find_element_by_xpath("//input[@id='login-signin']").submit()
self.driver.implicitly_wait(5)
# SEND PASSWORD KEYS
self.driver.implicitly_wait(5)
WebDriverWait(self.driver, 5).until(EC.element_to_be_clickable(\
(By.XPATH, '//*[@id="login-passwd"]'))).send_keys(password)
# CLICK NEXT
self.driver.implicitly_wait(20)
try:
element = WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable(\
(By.ID, 'login-signin')))
finally:
self.driver.quit()
element.click()
И затем я получаю странное исключение: "HTTPConnectionPool (host = '127.0.0.1', port = 36561): Максимальное количество попыток превышено с помощью url: / session / 13fbff99fe85a470c34475fd6186b0cb / element / 23be378e-9643-4f16-8c74-7647e9d80ff8 / click (вызвано NewConnectionError (': не удалось установить sh новое соединение: соединение отклонено) 111 ) "
Понятия не имею, что происходит. Мой оригинальный проект работал отлично дома, проходя все клики и представления и удаляя различные всплывающие окна, но теперь это не работает. Я устала запускать его в точке доступа моего телефона, которая лучше, чем в общежитии Wi-Fi моей школы, и в моем домашнем Wi-Fi тоже, но он все еще не работает и вместо этого нажимает на рекламу.
Я также только что попробовал приведенный ниже фрагмент вместо элемента ожидания для нажатия:
element = WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(\
(By.ID, 'login-signin')))
Это тоже не сработало, браузер открывается и закрывается и выдает мне ту же ошибку соединения, которую я описал.
Может ли это быть связано с моим rnet соединением?
Обратите внимание, что ключи моего пароля отправляются правильно.
В остальном все равно с точки зрения обновленного драйвера для chromedriver, работающего на linux. С предпоследней версией Ubuntu на сегодняшний день. Пожалуйста, помогите, спасибо. Мой python3 обновлен до последней версии, которую поддерживает linux, не превращая мой компьютер в ма sh картошку.