4 之旅:身份验证

介绍 Selenium 4 如何处理身份验证

在我们发布 Selenium 4 之前,我认为深入介绍一些新功能会很不错。 当然,我们所涵盖的所有功能都在主要的 WebDriver 文档中,所以如果您不喜欢阅读博客文章,请随意直接查阅那里!

我想向您介绍的第一个功能是 Selenium 4 新发现的网站身份验证能力。 我们一直能够处理“基于表单”的身份验证,其中登录页面有一些 INPUT 元素,您需要输入用户名和密码,但处理使用 基本身份验证或摘要身份验证 的站点一直更加困难。 在使用 Selenium 3 时,建议的做法是获取登录 Cookie 并在访问站点之前将其设置在会话中,但您现在只需调用 register 方法即可添加用户名和密码(或者在未来,其他类型的身份验证凭据)

简而言之,在 Selenium 4 中,这个过程变得不那么复杂了。 也许一个例子会有所帮助?

// This "HasAuthentication" interface is the key!
HasAuthentication authentication (HasAuthentication) driver;

// You can either register something for all sites
authentication.register(() -> new UsernameAndPassword("admin", "admin"));

// Or use something different for specific sites
authentication.register(
  uri -> uri.getHost().contains("mysite.com"),
  new UsernameAndPassword("AzureDiamond", "hunter2"));
  
driver.register(username: 'admin', password: 'admin')
  

完成此操作后,每次 driver 加载需要身份验证的页面时,它都会自动使用您提供的用户名和密码。

此功能目前在 Selenium 4 的 CDP 支持之上实现,因此仅适用于支持该协议的浏览器,但随着我们推进 WebDriver Bidi 的开发,将在可以的情况下切换到该协议。

上次修改时间:2021 年 10 月 11 日: 发布帖子 [部署站点] (eac25ed14ca)