не удается войти в систему с помощью оповещения Google на веб-сайте, используя селен Python - PullRequest
1 голос
/ 26 апреля 2019

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

import selenium
from selenium import webdriver

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome("/Users/vagif/Downloads/chromedriver")
driver.get('https://passport.alibaba.com/icbu_login.htm?return_url=https%3A%2F%2Fwww.alibaba.com%2F')
driver.implicitly_wait(3)
google = driver.find_element_by_xpath('//a[@attr-type="google"]')
google.click()

time.sleep(1)
actions = ActionChains(driver)
actions.key_down(Keys.COMMAND + '~').perform()
time.sleep(1)
element = driver.find_element_by_xpath('//input[@type="email"]')

element.send_keys('leine.tee1@gmail.com')
time.sleep(1)
next = driver.find_element_by_class_name('RveJvd').click()
time.sleep(1)
password = driver.find_element_by_class_name('whsOnd').send_keys('***password***')
next = driver.find_element_by_class_name('RveJvd').click()

Моя проблема в том, что код работает нормально, пока не появится вход с помощью всплывающего окна Google. После этого я получаю сообщение о том, что элемент не найден. Спасибо за любую помощь, спасибо всем!

1 Ответ

1 голос
/ 26 апреля 2019

Благодаря @ demouser123 и этой ссылке мне удалось решить проблему.

Добавив следующий код:

window_before = driver.window_handles[0]
window_after = driver.window_handles[1]
driver.switch_to_window(window_after)

Мне удалосьпереключать вкладки.Вот мой полный код:

import selenium
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome("/Users/vagif/Downloads/chromedriver")
driver.get('https://passport.alibaba.com/icbu_login.htm?return_url=https%3A%2F%2Fwww.alibaba.com%2F')
driver.implicitly_wait(3)
google = driver.find_element_by_xpath('//a[@attr-type="google"]')
google.click()

window_before = driver.window_handles[0]
window_after = driver.window_handles[1]
driver.switch_to_window(window_after)
time.sleep(1)

time.sleep(1)
element = driver.find_element_by_xpath('//input[@type="email"]')

element.send_keys('leine.tee1@gmail.com')
time.sleep(1)
next = driver.find_element_by_class_name('RveJvd').click()
time.sleep(2)
password = driver.find_element_by_class_name('whsOnd').send_keys('****password')
next = driver.find_element_by_class_name('RveJvd').click()

Спасибо всем за помощь!

...