我有一个托管在 tomcat 上的应用程序,该应用程序由 apache 的摘要式身份验证保护和代理。当我访问服务器上的任何内容时,我会收到 basicAuth 样式的登录对话框。
当我尝试使用下面的代码登录时,它永远不会到达“driver.switchTo().alert()”部分......它在via ...语句中永远循环并抛出异常。我猜测 GEB 的“to”和“via”语句都等待页面加载完成。现在geb正在等待页面加载并且页面正在等待geb输入凭据。死锁。您能否提供有关如何解决此问题的任何建议?请注意,我已经尝试过 http://:@mydomain.com/index.jsp 但它不断提示我一个威胁性的登录对话框。
via AppLoginPage //using a page object here
Alert alert= driver.switchTo().alert();
// Type the username
alert.sendKeys(user);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_TAB);
简单来说,如何在不等待整页加载的情况下使geb完成,以便我的机器人代码可以处理警报?希望这是清楚的。
最佳答案
我们使用 baseUrl = 'http://admin:password@yourwebsite.com'
风格对我们的内部应用进行身份验证。
我们曾在某个阶段使用过代理,也尝试过 Robot,但它有时会导致 Webdriver 使用的现有库出现问题,并且发现这问题较少。
如果您使用 IE :@ 将不起作用。但是,您可以使用组策略和注册表编辑来打开此功能。请注意这是一个安全问题。
如果这不是您喜欢的方式,我可以为您挖掘旧代码。
关于java - 盖布 : How to interact with browser's BasicAuth dialog while page is loading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27113536/