使用Java 使用Selenium WebDriver 處理身份驗證彈出視窗
在Selenium WebDriver 中,導航到需要身份驗證的頁面通常會觸發彈出視窗。但是,即使使用者輸入正確的憑證,問題中提供的程式碼仍會顯示身份驗證彈出視窗。這可能會令人沮喪並阻礙自動化工作。
解決方案在於利用 Alert 類別的authenticateUsing() 方法。此方法可讓您繞過基本的 HTTP 驗證彈出視窗並自動對使用者進行身份驗證。這是修改後的程式碼:
import org.openqa.selenium.Alert; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class EnhancedAuthenticationHandling { public static void main(String[] args) { // Set up Firefox profile to accept long username and password FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("network.http.phishy-userpass-length", 255); profile.setPreference("network.automatic-ntlm-auth.trusted-uris", "x.x.x.x"); // Create FirefoxDriver with the modified profile WebDriver driver = new FirefoxDriver(profile); // Navigate to the protected page String login = "username"; String password = "password"; String url = "http://protectedpage.com"; String baseUrl = "http://" + login + ":" + password + "@" + url; driver.get(baseUrl + "/"); // Wait for authentication alert to appear WebDriverWait wait = new WebDriverWait(driver, 10); Alert alert = wait.until(ExpectedConditions.alertIsPresent()); // Authenticate using the provided credentials alert.authenticateUsing(new UserAndPassword(login, password)); } }
在此更新的程式碼中,使用正確的使用者名稱和密碼呼叫authenticateUsing()方法。這應該會自動驗證用戶身份並關閉彈出窗口,從而允許頁面成功加載。
注意:
以上是如何使用 Java 處理 Selenium WebDriver 中的驗證彈出視窗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!