Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Как написать автотест на python для входа через соц. сесть

webdriver
python
Теги: #<Tag:0x00007fedb7eedd40> #<Tag:0x00007fedb7eedb60>

(Андрей Петров) #1

Добрый день.
Столкнулся с такой проблемой. Учусь автоматизации Python(v3.7)+Selenium, написал по стандарту древний тест для авторизации

def test_authorization_google(app):
app.open_mobile_page()
app.login_google(username="name@gmail.com", password=“password”)
app.logout()

def login_google(self, username, password):
wd = self.wd

нажимаю на кнопку “авторизацию”

    wd.find_element_by_css_selector(".login").click()

появилась страница, в которой я нажимаю на кнопку входа через соц сеть

    wd.find_element_by_css_selector(".google").click()

тут открываеться попап окно гугл для ввода логин, я его ввожу

    wd.find_element_by_name("identifier").click()
    wd.find_element_by_name("identifier").clear()
    wd.find_element_by_name("identifier").send_keys(username)

нажимаю на кнопку “далее” wd.find_element_by_css_selector("/html/body/div[1]/div[1]/div[2]/div[2]/div/div/div[2]/div/div[2]/div[1]/div/content/span").click()

открылось окно для ввода пароля, я его ввожу

    wd.find_element_by_name("password").click()
    wd.find_element_by_name("password").clear()
    wd.find_element_by_name("password").send_keys(password)

нажимаю на кнопку “далее”

    wd.find_element_by_css_selector("/html/body/div[1]/div[1]/div[2]/div[2]/div/div/div[2]/div/div[2]/div[1]/div/content/span").click()

Вот у меня при запуске открывается окно для ввода логи, и все, логин не вводится и через время тест падает, может кто подсказать, как правильно написать тест?


(Roy Obenon) #2

нужно переключится на второе окно, при этом запросив в текущем окне handles = driver.window_handles(), который вернет список с обработчиками окон (в вашем случае 2 будет) и потом переключаетесь на второе через driver.switch_to_window(handles[1])


(Андрей Петров) #3

Спасибо, сделал через driver.switch_to.window(driver.window_handles[1]) )


(Andrey K) #4
import time
from selenium import webdriver

vk = webdriver.Chrome('C:\ПАПКА\chromedriver') 
vk.get('http://www.vk.com');
login = vk.find_element_by_css_selector('#index_email')
login.send_keys('piva@net.org')
password = vk.find_element_by_css_selector('#index_pass')
password.send_keys('password')
submit=vk.find_element_by_css_selector('#index_login_button')
submit.click()
submit=vk.find_element_by_css_selector('#top_profile_link')
submit.click()
submit=vk.find_element_by_css_selector('#top_logout_link')
submit.click()