我使用了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之外,我们还有其他任何备用方法。
答案 0 :(得分:0)
请检查您是否设置了系统属性(“webdriver.gecko.driver”)。否则Firefox可以在没有任何进一步操作的情况下打开。
我无法打开您的链接https://www.engprod-character.net/,请检查一下。
我不知道autoit。我只能说Selenium是一个为
工作的网络测试框架希望这有帮助吗?
编辑:我建议以另一种方式处理弹出窗口。我不知道你的测试对象的源代码,但如果它是一个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身份验证弹出