4 導覽:身份驗證

介紹 Selenium 4 如何處理身份驗證

在我們發布 Selenium 4 之前,我想先深入介紹一些新功能。 當然,我們涵蓋的所有功能都在主要的 WebDriver 文件中,所以如果您不喜歡閱讀部落格文章,請隨時直接查看文件!

我想向您介紹的第一件事是 Selenium 4 新增的網站身份驗證功能。 我們一直都能處理「表單式」身份驗證,也就是登入頁面有一些 INPUT 元素需要您輸入使用者名稱和密碼,但處理使用 基本或摘要式身份驗證 的網站一直比較困難。 在使用 Selenium 3 時,建議的做法是取得登入 Cookie 並在存取網站之前將其設定到您的 Session 中,但現在您只需呼叫 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日:發布文章 [deploy site] (eac25ed14ca)