Управление селеном в новом окне - PullRequest
0 голосов
/ 09 мая 2020

Я хочу написать код для входа в платформу «Origin»

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

options = Options()
options.binary_location = "C:/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://www.origin.com/irl/en-us/store")

time.sleep(5)
Menu_Button = driver.find_element_by_xpath("//*[@id='shell']/section/div/nav/div/div[1]/div[2]").click()
Sign_in_Button = driver.find_element_by_xpath("//div[@class='origin-cta-primary origin-telemetry-cta-primary']").click()
time.sleep(10)
Email_Adress = driver.find_element_by_xpath("//input[@name='email']").send_keys("Deneme")
Password = driver.find_element_by_xpath("//input[@name='password']").send_keys("Deneme123")
Login_Button = driver.find_element_by_xpath("//a[@id='logInBtn']").click()

При нажатии кнопки «Вход» открывается новое окно для ввода пароля идентификатора, но я не могу его управлять

After the

Ответы [ 2 ]

2 голосов
/ 09 мая 2020

Вы можете получить доступ к новому windows с помощью driver.window_handles , который представляет собой просто список с дескрипторами для всех текущих windows драйвера. Если у драйвера есть только главное окно и окно входа в систему, окно входа будет иметь вид driver.window_handles [1].

Вы можете переключить драйвер в это окно с помощью

driver.switch_to.window(driver.window_handles[1])

После этого вы сможете обработать свой код

Email_Adress = driver.find_element_by_xpath("//input[@name='email']").send_keys("Deneme")
....
1 голос
/ 09 мая 2020

Я помню, как читал об этом, но не могу вспомнить, это может указать вам верное направление

https://selenium-python.readthedocs.io/navigating.html#moving -between- windows -and-frames

browser=webdriver.Firefox()
[...]
browser.switch_to_window(browser.window_handles[1])
browser.switch_to_window(browser.window_handles[0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...