【问题标题】:Cannot find element from a jump out window. How can I switch to a new jump out window?无法从跳出窗口中找到元素。如何切换到新的跳出窗口?
【发布时间】:2016-10-13 06:56:56
【问题描述】:

我正在尝试使用 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)

【问题讨论】:

  • 很难说没有 url 或看到 html
  • 首页显示:您的会话已超时。请稍候,您将在 5 秒后重定向到登录屏幕。 5秒后这个页面会是一个空页面,然后会跳出一个新页面。网址完全相同。这是网址:172.16.1.186:8080/C******E/servlet/LOGON

标签: python python-2.7 selenium-webdriver sikuli


【解决方案1】:

首先,我在您的示例中看不到任何 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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多