Rumah >Java >javaTutorial >Mengapa Saya Mendapat Ralat 'Rujukan Elemen Lapuk' dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Saya Mendapat Ralat 'Rujukan Elemen Lapuk' dan Bagaimana Saya Boleh Membetulkannya?

DDD
DDDasal
2024-11-04 22:12:02338semak imbas

Why Do I Get

Rujukan Elemen Lapuk: Sebab dan Penyelesaian

Ralat "rujukan elemen basi" berlaku apabila elemen dalam DOM tidak lagi tersedia, lazimnya disebabkan ia dikeluarkan atau dicipta semula. Dalam kod yang disediakan, ralat berlaku kerana elemen yang dirujuk oleh BenefitStatusLi Xpath tidak lagi sah.

Struktur HTML menunjukkan bahawa pautan BenefitStatus bersarang dalam

  • elemen yang dimuatkan secara dinamik. Kod ini berulang melalui senarai pautan navigasi dan carian untuk teks BenefitStatus. Walau bagaimanapun, apabila ia cuba mengklik elemen menggunakan Xpath yang dikira, elemen itu mungkin telah digantikan dengan pautan BenefitStatus baharu dengan Xpath yang berbeza.

    Untuk menyelesaikan isu ini, gunakan penantian yang jelas untuk memastikan elemen tersebut dimuatkan dan stabil. Selain itu, kendalikan pengecualian rujukan unsur lapuk dengan mencuba semula untuk mencari elemen:

    <code class="java">WebDriverWait wait = new WebDriverWait(driver, 10);
    
    try {
        WebElement benefitStatLi = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(String.format(BenefitStatLi, i))));
        benefitStatLi.click();
    } catch (StaleElementReferenceException ex) {
        WebElement benefitStatLi = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(String.format(BenefitStatLi, i))));
        benefitStatLi.click();
    }</code>

    Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Rujukan Elemen Lapuk' dan Bagaimana Saya Boleh Membetulkannya?. 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