无法从跳出窗口中找到元素。我怎样才能切换到新的跳出窗口?
问题描述:
我想用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)
答
首先,我看不到你的榜样任何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")
很辛苦没有URL或查看HTML –
第一页说显示:您的会话已超时。请稍等,您将在5秒内重定向到登录屏幕。 5秒后,这个页面将是一个空白页面,然后跳出一个新页面。 URL是完全相同的。这是网址:http://172.16.1.186:8080/C******E/servlet/LOGON –