使用driver.get()&amp ;;调用浏览器时,Selenium 2.53不会抛出异常。驱动程序。导航()

时间:2018-03-22 08:44:07

标签: selenium selenium-webdriver windows-authentication

我使用了selenium 2.53.1并尝试调用浏览器,但浏览器会弹出Windows身份验证。一旦Windows身份验证弹出,driver.get()将在selenium 2.42中抛出异常,但同样的情况在2.53中不起作用。驱动程序没有抛出任何异常并在2.53中长时间闲置

浏览器使用了firefox。 例如:网址 驱动程序。获取( “https://www.engprod-character.net/”); Windows身份验证弹出窗口发生期望需要用户凭据。

在selenium 2.42中:由于驱动程序无法调用浏览器,因此抛出异常,因此我捕获该异常并使用机器人fw代码处理弹出的身份验证。 浏览器:firefox 29

在selenium 2.53中:驱动程序没有抛出任何异常。所以我无法处理它。 浏览器:Firefox 46

为什么selenium 2.53不会抛出异常。除了使用autoIT之外,我们还有其他任何备用方法。

2 个答案:

答案 0 :(得分:0)

请检查您是否设置了系统属性(“webdriver.gecko.driver”)。否则Firefox可以在没有任何进一步操作的情况下打开。

我无法打开您的链接https://www.engprod-character.net/,请检查一下。

我不知道autoit。我只能说Selenium是一个为

工作的网络测试框架
  • 爪哇
  • C#
  • 红宝石
  • 的Javascript
  • 的Python
  • 的Perl

希望这有帮助吗?

编辑:我建议以另一种方式处理弹出窗口。我不知道你的测试对象的源代码,但如果它是一个java popup,Selenium无法读取它。

在这种情况下,请使用

driver.switchTo().alert().sendKeys("<username>");
action.sendKeys(Keys.TAB);

以相同的方式发送密码和ENTER。

另一种方法是通过向UR添加凭据来克服身份验证,如HTTP Basic Authentication credentials passed in URL and encryption

中所述

祝你好运!

答案 1 :(得分:0)

driver.get()在Windows页面加载超时过期时抛出异常它抛出异常然后我们可以捕获tge异常并执行机器人类代码来解决Windows身份验证弹出