Rumah >Java >javaTutorial >Bagaimana untuk Mengendalikan Pop timbul Pengesahan dalam Selenium WebDriver Menggunakan Java?

Bagaimana untuk Mengendalikan Pop timbul Pengesahan dalam Selenium WebDriver Menggunakan Java?

Susan Sarandon
Susan Sarandonasal
2024-12-10 02:16:09662semak imbas

How to Handle Authentication Pop-ups in Selenium WebDriver Using Java?

Kendalikan Pop Timbul Pengesahan dengan Selenium WebDriver Menggunakan Java

Dalam Selenium WebDriver, menavigasi ke halaman yang memerlukan pengesahan sering mencetuskan tetingkap timbul . Walau bagaimanapun, kod yang diberikan dalam soalan masih memaparkan pop timbul pengesahan walaupun selepas pengguna memasukkan bukti kelayakan yang betul. Ini boleh mengecewakan dan menghalang usaha automasi.

Penyelesaian terletak pada menggunakan kaedah authenticateUsing() kelas Alert. Kaedah ini membolehkan anda memintas pop timbul pengesahan HTTP asas dan mengesahkan pengguna secara automatik. Berikut ialah kod yang diubah suai:

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));
       
    }
}

Dalam kod yang dikemas kini ini, kaedah authenticateUsing() dipanggil dengan nama pengguna dan kata laluan yang betul. Ini sepatutnya mengesahkan pengguna secara automatik dan mengetepikan pop timbul, membenarkan halaman dimuatkan dengan jayanya.

Nota:

  • Kaedah authenticateUsing() hanya disokong dalam Selenium WebDriver versi 3.4 dan ke atas, dan ia masih dianggap sebagai beta ciri.
  • Pada masa ini, ia hanya dilaksanakan untuk InternetExplorerDriver.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Pop timbul Pengesahan dalam Selenium WebDriver Menggunakan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn