Как войти в Yahoo через Selenium Python (пробовал несколько решений) - PullRequest
2 голосов
/ 10 мая 2019

Я пытаюсь войти в свою учетную запись Yahoo через Селен. Сейчас я просто учусь и создаю программы для разных веб-сайтов, чтобы в целом освоиться с Selenium.

Я сейчас пытаюсь войти в Yahoo, и я не смог понять это.

URL: https://login.yahoo.com/

Я пытался сделать:

yahoologin1 = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "#login-username"))).sendKeys("tester@yahoo.com")

yahoologin1 = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "login-username"))).sendKeys("tester@yahoo.com")

yahoologin1 = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "//input[@id='login-username']"))).sendKeys("tester@yahoo.com")

yahoologin1 = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "/html[1]/body[1]/div[2]/div[1]/div[1]/form[1]/div[2]/input[1]"))).sendKeys("tester@yahoo.com")

Что-нибудь, что мне особенно не хватает? Был бы признателен, если бы кто-нибудь сказал мне , как , чтобы заставить этот логин работать. Скорее, это просто копирование кода :) Спасибо!

Я провел дополнительное тестирование, и оно работает, когда на главной вкладке. Тем не менее, я открываю новую вкладку со страницей входа в Yahoo, она не работает. Нужно ли что-то делать по-другому для ввода на новой вкладке?

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Я использовал другой подход без WebDriverWait для решения, надеюсь, это поможет.

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--window-size=1920x1080")
browser = webdriver.Chrome('./chromedriver', chrome_options=chrome_options)

# Opening yahoo page in a new tab
browser.execute_script("window.open('https://login.yahoo.com/');")
# Switch to new tab
browser.switch_to.window(browser.window_handles[-1])
# Selecting login-username and putting email
browser.find_element_by_id('login-username').send_keys('tester@yahoo.com')

Результат:

Result

0 голосов
/ 10 мая 2019

Вот пример сценария.

url = "https://login.yahoo.com/"
# Step 1 -navigate to the AUT
driver.get(url)
print ("Step 1 - Done")
# Step 2 - Enter the username
#wait for the user name to be displayed
userName = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'input#login-username')))
userName.send_keys("used css")
# Step 3 - click on Next
driver.find_element_by_xpath("//input[@id='login-signin']").click()
# Step 4 - Enter password
passWord = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"input[name='password']")))
passWord.send_keys("password")
# Step 5 - Click on Sign in
driver.find_element_by_id("login-signin").click()

Вот как можно быстро и эффективно разработать скрипт.

  • Сохранить точку останова после перехода браузера на URL enter image description here
  • Получить элемент xpath с помощью chrome devtools, см. здесь о том, как получить тест и получить xpath
  • Зайдите в Консоль> нажмите show python prompt, чтобы открыть интерактивную консоль enter image description here
  • Введите здесь код и нажмите Enter, чтобы проверить, работает ли эта строка, когда вы помещаете ее в свой скрипт enter image description hereenter image description here

  • Внесите необходимые изменения и подтвердите выполнение шага. enter image description here

  • Скопируйте и вставьте шаг из интерактивной консоли в скрипт. enter image description here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...