Menghadapi "rujukan elemen basi: elemen tidak dilampirkan pada dokumen halaman " ralat dalam WebDriver adalah cabaran biasa semasa berinteraksi dengan halaman web dinamik. Isu ini timbul apabila elemen yang anda cuba akses telah dialih keluar atau ditukar dalam struktur DOM.
Dalam kod yang disediakan, ralat berlaku apabila cuba mengklik pautan status faedah dalam setiap bahagian. Struktur HTML mencadangkan bahawa terdapat berbilang bahagian dengan pautan, termasuk pautan status faedah.
Isu ini berkemungkinan disebabkan rujukan unsur lapuk. Apabila kod menemui senarai pautan ('#sliding-navigation//a'), ia menangkap rujukannya. Walau bagaimanapun, apabila ia kemudiannya berulang melalui pautan ini untuk mencari pautan status faedah, struktur DOM mungkin telah berubah sejak tangkapan awal. Ini boleh berlaku jika elemen tambahan ditambah atau dialih keluar secara dinamik, menyebabkan indeks dan rujukan menjadi lapuk.
Untuk menyelesaikan isu ini, anda boleh menggunakan blok cuba-tangkap untuk mengendalikan pengecualian rujukan unsur lapuk. Jika rujukan awal gagal, anda boleh cuba mencari elemen sekali lagi dan melakukan tindakan yang diperlukan.
Berikut ialah contoh menggunakan blok cuba-tangkap:
<code class="java">try { WebElement benefitStatusLink = driver.findElement(By.xpath(String.format(BenefitStatLi, i))); benefitStatusLink.click(); } catch (StaleElementReferenceException e) { benefitStatusLink = driver.findElement(By.xpath(String.format(BenefitStatLi, i))); benefitStatusLink.click(); }</code>
Pendekatan ini memastikan anda mempunyai rujukan terkini kepada elemen sebelum melakukan tindakan klik.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat 'Rujukan Elemen Lapuk: Elemen Tidak Dilampirkan pada Dokumen Halaman' dalam WebDriver?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!