我正在尝试使用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 :(得分: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")