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

时间:2016-06-12 22:54:53

标签: python python-2.7 selenium-webdriver sikuli

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

  

你的会话有超时

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

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)

1 个答案:

答案 0 :(得分:0)

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

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

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")