java - 盖布 : How to interact with browser's BasicAuth dialog while page is loading

标签 java selenium automation awt geb

我有一个托管在 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 :@ 将不起作用。但是,您可以使用组策略和注册表编辑来打开此功能。请注意这是一个安全问题。

如果这不是您喜欢的方式,我可以为您挖掘旧代码。

I used a similar answer as per this question

关于java - 盖布 : How to interact with browser's BasicAuth dialog while page is loading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27113536/

相关文章:

java - 带有 Google GWT 插件的 Spring Tool Suite 在 Java2HTMLEntityReader 中引发错误

java - Rails ActiveRecord 相当于 Hibernate load()?

java - 如何让java系统发布Soft References?

java - Selenium Webdriver 代码中的这些额外方法是什么?

c# - 如何通过 Selenium 的 --user-data-dir 参数打开 Chrome 配置文件

python - 在 ADLS 上自动激活 SFTP

javascript - CasperJS支持 session 机制吗?

java - 为什么 Eclipse 的 Mac OS X 发行版中默认的 eclipse.ini 中的 Xmx java 参数设置得如此之低?

python - 如何通过 Selenium 根据 url 将文本发送到地理位置搜索框

java - @Test方法不等待selenium代码完成其执行