Rumah  >  Artikel  >  Java  >  Bagaimana Mengendalikan Pengecualian "Rujukan Unsur Lapuk" dalam Selenium?

Bagaimana Mengendalikan Pengecualian "Rujukan Unsur Lapuk" dalam Selenium?

Barbara Streisand
Barbara Streisandasal
2024-11-04 17:16:01549semak imbas

How to Handle

Rujukan Elemen Lapuk: Membongkar Punca dan Mencari Penyelesaian

Dalam Selenium, menghadapi pengecualian "rujukan unsur basi" boleh mengecewakan, kerana ia menunjukkan bahawa elemen yang dirujuk tidak lagi dilampirkan pada dokumen halaman. Ralat ini sering berlaku apabila DOM telah mengalami perubahan ketara, seperti pemuatan dinamik atau navigasi halaman.

Untuk menyelesaikan isu ini, adalah penting untuk mengenal pasti baris kod yang tepat yang mencetuskan pengecualian. Dalam kod yang disediakan, baris yang bertanggungjawab untuk ralat nampaknya:

<code class="java">driver.findElement(By.xpath(String.format(BenefitStatLi, i))).click();</code>

Barisan ini cuba mengklik pada elemen berdasarkan rentetan XPath yang diformatkan. Walau bagaimanapun, elemen asas mungkin telah dialih keluar atau diubah suai pada masa klik dilaksanakan, membawa kepada pengecualian rujukan elemen lapuk.

Punca asas isu ini ialah DOM tidak stabil apabila kod dilaksanakan . Untuk menangani perkara ini, seseorang boleh mempertimbangkan untuk melaksanakan mekanisme cuba semula yang menunggu elemen tersedia semula sebelum mengkliknya. Berikut ialah contoh percubaan semula sebegini:

<code class="java">try {
    // Attempt to click on the element
    driver.findElement(By.xpath(String.format(BenefitStatLi, i))).click();
} catch (org.openqa.selenium.StaleElementReferenceException ex) {
    // Element is not yet available, so wait and try again
    Thread.sleep(200); // Replace with appropriate wait time
    driver.findElement(By.xpath(String.format(BenefitStatLi, i))).click();
}</code>

Dengan memperkenalkan masa menunggu sebelum mencuba semula klik, kod tersebut memberikan DOM masa yang cukup untuk menstabilkan dan memastikan elemen itu hadir dan boleh diklik sebelum meneruskan.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Pengecualian "Rujukan Unsur Lapuk" dalam Selenium?. 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