[Python] [Selenium]如何在处理firefox浏览器警报时切换输入字段?

时间:2015-07-01 05:06:14

标签: python firefox selenium alert

我有一个受密码保护的代理,其用户名和密码不断更改,因此我需要始终在启动浏览器时显示的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键进行切换?

由于

1 个答案:

答案 0 :(得分:1)

而不是将tab键发送到浏览器,您可以通过id name或xpath获取用户名和密码元素并发送输入。 这是一个例子:

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")