【问题标题】:[Python][Selenium] How to switch input fields while handling firefox browser alerts?[Python][Selenium] 处理Firefox浏览器警报时如何切换输入字段?
【发布时间】:2015-09-18 02:44:19
【问题描述】:

我有一个受密码保护的代理,其用户名和密码不断更改,因此我需要始终在启动浏览器时显示的 Firefox 提示符中输入它们。我无论如何都找不到从用户名输入切换到密码输入。我一直在使用这段代码来处理警报:

try:
    WebDriverWait(driver, 3).until(EC.alert_is_present(),
                                   'Timed out waiting for PA creation ' +
                                   'confirmation popup to appear.')

    alert_input = Alert(driver)
    alert_input.send_keys('username')
    alert_input.send_keys(Keys.TAB)
    alert_input.send_keys('password')
    alert_input.accept()
    print("alert accepted")
except TimeoutException:
    print("no alert")

但是,这不起作用,因为在用户名字段中输入用户名后,它将替换为  并且不会移动到密码字段。所以我假设它实际上是在用户名字段中输入选项卡,而不是在密码字段中输入选项卡。有没有办法在没有 tab 键的情况下切换字段或以某种方式使用 tab 键?

谢谢

【问题讨论】:

    标签: python firefox selenium alert


    【解决方案1】:

    您可以通过 id 名称或 xpath 获取用户名和密码元素并发送输入,而不是向浏览器发送 tab 键。 示例如下:

    username = driver.find_element_by_name("name of the username field")
    username.send_keys("username")
    password = driver.find_element_by_name("name of the password field")
    password.send_keys("password")
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 2019-07-05
    • 2021-11-15
    • 2022-09-23
    • 2018-12-21
    相关资源
    最近更新 更多