2016-06-12 72 views
-1

我想用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) 
+0

很辛苦没有URL或查看HTML –

+0

第一页说显示:您的会话已超时。请稍等,您将在5秒内重定向到登录屏幕。 5秒后,这个页面将是一个空白页面,然后跳出一个新页面。 URL是完全相同的。这是网址:http://172.16.1.186:8080/C******E/servlet/LOGON –

回答

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") 
相关问题