Селен не нажимает ENTER - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь войти в Bing, используя селен. Мой код вводит правильный адрес электронной почты, нажимаю клавишу ВВОД, а затем набираю пароль. Затем следует снова нажать ENTER. Но как только он вводит пароль, он не переходит к следующей странице. В терминале ничего не всплывает. Он не говорит «Неправильный логин». Он просто остается на странице входа с паролем, введенным в поле ввода. Вот код:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
browser = webdriver.Chrome('/Users/grayson1/Downloads/chromedriver')
browser.get('https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1592312166&rver=6.7.6631.0&wp=MBI_SSL&wreply=https%3a%2f%2fwww.bing.com%2fsecure%2fPassport.aspx%3frequrl%3dhttps%253a%252f%252fwww.bing.com%252f%253fwlexpsignin%253d1%26sig%3d129CDB0DE83D6A123FB7D5E7E9ED6B4B&lc=1033&id=264960&CSRFToken=5a18094e-a0f1-4ad1-afb6-a03aac0295fc&aadredir=1')
username = browser.find_element_by_id('i0116')
username.send_keys("EMAIl")
username.send_keys(Keys.ENTER)
password = browser.find_element_by_id('i0118')
password.send_keys('PASSWORD')
password.send_keys(Keys.ENTER)

Ответы [ 3 ]

1 голос
/ 16 июня 2020

Определите password, как показано ниже, затем отправьте ключи и введите:

password = WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.ID, 'i0118')))
password.send_keys('PASSWORD'+Keys.ENTER)

Добавьте эти импорты для WebDriverWait:

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

Для согласованности вы можете определить username так же.

0 голосов
/ 16 июня 2020

Можете ли вы выполнить этот процесс вручную, набрав учетные данные и нажав Enter, если вы этого не сделаете, вы также не можете сделать это как автоматизацию

0 голосов
/ 16 июня 2020

Попробуйте сначала перейти к этой кнопке: -

WebElement signInbtn = driver.findElement(By.id("idSIButton9"));

signInbtn.click();

или

signInbtn.submit()

Если это не сработает, попробуйте класс Actions

WebElement signInbtn = driver.findElement(By.id("idSIButton9"));

Actions builder = new Actions(driver);
Action seriesOfActions = builder
    .moveToElement(signInbtn)
    .click().perform();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...