首页 > 解决方案 > Selenium WebDriver.get() 在加载的页面为空并带有警报弹出登录时卡住

问题描述

所以我有一个需要用 selenium 测试的页面,它最近已更改为使用警报弹出身份验证(如果您不知道我在说什么,请检查这个.

我目前的方法几乎是上面链接中的 3. 方法,但我使用 Actions 来发送键而不是仅仅查找元素。

browser.get(url)
Alert alert = browser.switchTo().alert();
Actions action = new Actions(browser)
action.sendkeys(user).sendkeys(Keys.tab).sendkeys(password).perform()
alert.accept()

问题从第一行开始,它卡在那里......似乎 selenium/chromedriver 没有检测到该页面已加载,它可以继续到下一行。

我肯定知道这一点,因为当我尝试在第一行之后打印某些内容时,它永远不会被打印出来,并且最终(之后的永恒)它会抛出 TimeOutException。

有什么建议么?

使用最新:Selenium 3.11.0 ChromeDriver 2.38 Google Chrome 66

标签: javaseleniumselenium-chromedriver

解决方案


弹出窗口不是浏览器的一部分,它属于操作系统,这就是为什么无法通过 selenium 访问

只需将您的凭据直接发送到 URL,请参阅Selenium 中的自动身份验证弹出窗口


推荐阅读