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 中国語 Web サイトの他の関連記事を参照してください。