当前位置: 首页 > 面试题库 >

Chrome 59和带有selenium/ F的基本身份验证

杨鸿畅
2023-03-14
问题内容

Chrome 59 删除了对https:// user:password@example.com
URL的支持

我有一个正在使用此功能的测试,该功能现已损坏,因此我尝试将其替换为等待身份验证弹出窗口并填写详细信息的版本。但是以下操作在Chrome上不起作用(Chrome不会将auth弹出窗口视为警报):

alert().authenticateUsing(new UserAndPassword("test", "test"));

仅selenium版本具有相同的问题:

WebDriverWait wait = new WebDriverWait(getDriver(), 10);      
Alert alert = wait.until(ExpectedConditions.alertIsPresent());     
alert.authenticateUsing(new UserAndPassword("test", "test"));

我可以在FireFox中看到几种解决方法,但对于Chrome则看不到。是否有其他替代方法?


问题答案:

我确信FlorentB的解决方案是可行的,但是为了翻新旧测试,我发现发布到此重复问题的
Zoonabar解决方案更容易实现,所需的代码少得多,并且不需要特殊的测试箱准备。对于新开发者来说,看代码似乎也比较容易。

简而言之:在访问被测URL(没有凭据)之前访问带有凭据的任何URL,将使浏览器记住凭据。

goTo("http://user:password@localhost"); // Caches auth, but page itself is blocked
goTo("http://localhost"); // Uses cached auth, page renders fine
// Continue test as normal

这看起来像是浏览器中的漏洞将被修补,但我认为这不太可能。采取了限制措施来避免网络钓鱼风险(所选择的用户名看起来像域名,例如“
http://google.com:long-token-here-which-makes-the-real-domain-
disappear@example.com / “),此设置凭据的解决方法不会带来相同的风险。



 类似资料:
  • 我正在尝试使用Solrj连接到solr。我的solr实例在jetty中运行,并受到基本身份验证的保护。我找到了这些包含相关信息的链接。 有人能给我指个正确的方向吗?谢谢!!

  • 问题内容: 在C#程序中,刚安装的chromedriver 78.0.3904.70:现在无法加载受基本身份验证保护的URL。 在chromedriver 78之前:设置driver.Url = [basic-auth- url]将导致Chrome显示其“基本身份验证”对话框,并且我的C#程序将阻塞,直到关闭该对话框。这需要手动的用户干预来填充对话框,但是我可以接受。 现在,使用chromedri

  • 几天没有任何进展,我需要你的帮助。 使用GWT,我试图与REST服务器通信,服务器位于不同的URL上(需要CORS)<我的配置:服务器spring boot 1.3.3 客户端-GWT 1.7-restygwt 2.0.3 当我在Spring中禁用安全性时,我可以在我的GWT客户端中获取数据。 但是当我启用它时,我总是收到401个请求。REST URL请求直接在Web浏览器中工作(带有其身份验证对

  • 问题内容: 在(带有)中,我尝试使用以下语句通过基本身份验证访问我的网页: 但是Google Chrome浏览器在控制台中向我发出以下警告: [弃用]其URL包含嵌入式凭据(例如https://user:pass@host/)的子资源请求被阻止。有关更多详细信息,请参见https://www.chromestatus.com/feature/5669008342777856。 在标记的链接中提到该

  • 问题内容: 从HttpClient 4.3开始,我一直在使用HttpClientBuilder。我正在连接到具有基本身份验证的REST服务。我将凭据设置如下: 但是,这不起作用(我正在使用的REST服务返回401)。怎么了? 问题答案: 从此处的 抢先身份验证 文档中: http://hc.apache.org/httpcomponents-client- ga/tutorial/html/aut

  • 我有一个django rest_framework API、Swagger和一个Swagger UI。当我没有登录时,我只能看到非常有限的“登录”和“文档”视图。当我登录后,我可以看到很多东西。 我正在尝试使用swagger-代码生成客户端: 然而,它只生成一个非常有限的客户端,提供“登录”和“文档”功能。 如何让 swagger-codegen 知道如何使用 http 基本身份验证登录,以便生成