无法从跳出 window 中找到元素。如何切换到新的跳出window?

Cannot find element from a jump out window. How can I switch to a new jump out window?

我正在尝试使用 Python2.7、Selenium-webdriver 和 Sikuli 来自动化我们的系统。我在登录时遇到问题。每次打开我们的系统,第一页都是空白页,会自动跳转到另一页;新页面是主登录页面,因此 Python 总是尝试从第一页中查找元素。第一页有时显示:

your session has timeout

我为会话超时设置了一个非常大的数字,但它不起作用。 这是我的代码:

import requests
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.get('http://172.16.1.186:8080/C******E/servlet/LOGON')
# time.sleep(15)

bankid = driver.find_element_by_id("idBANK")
bankid.send_keys(01)

empid = driver.find_element_by_id("idEMPLOYEE")
empid.send_keys(200010)

pwdid = driver.fin`enter code here`d_element_by_id("idPASSWORD")
pwdid.send_keys("C******e1")

elem = driver.find_element_by_id("maint")
elem.send_keys(Keys.RETURN)

首先,我在您的示例中看不到任何 Sikuli 用法。如果您使用的是 Sikuli,那么其他页面的启动方式并不重要,因为您当时正在与屏幕上可见的任何内容进行交互。

在 Selenium 中,如果您有多个 windows 您必须将您的驱动程序切换到正确的驱动程序。获取可用 windows 列表的快速方法是这样的:

for handle in driver.window_handles:
    driver.switch_to_window(handle);
    print "Switched to handle:", handle
    element = browser.find_element_by_tag_name("title")
    print element.get_attribute("value")