Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Mengatasi \'ElementClickInterceptedException\' dalam Splinter/Selenium apabila Mengklik pada Pautan

Cara Mengatasi \'ElementClickInterceptedException\' dalam Splinter/Selenium apabila Mengklik pada Pautan

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 05:01:02889semak imbas

How to Overcome

Tidak Dapat Mengklik Elemen: ElementClickInterceptedException dalam Splinter / Selenium

Apabila mengikis halaman web menggunakan Splinter atau Selenium, menghadapi kesukaran semasa cuba mengklik tertentu pautan atau butang boleh berlaku. Isu ini timbul apabila halaman web dimuatkan, memaparkan "loadingWhiteBox" yang mengaburkan elemen boleh klik.

Walaupun "loadingWhiteBox" semakin pudar selepas beberapa saat, ia kekal hadir dalam kod HTML. Walaupun kotak itu kekal kelihatan, ia menghalang percubaan untuk mengklik pada elemen, mengakibatkan mesej ralat berikut:

selenium.common.exceptions.ElementClickInterceptedException: Message: Element tidak boleh diklik pada titik (318.3000030517578,661.7999877929688) kerana elemen lain

mengaburkannya

Untuk menyelesaikan isu ini dan klik pada elemen yang dikehendaki dengan berkesan, pertimbangkan untuk melaksanakan salah satu kaedah di bawah:

<code class="python">element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
driver.execute_script("arguments[0].click();", element)</code>

Kaedah ini menggunakan fungsi execute_script untuk melaksanakan kod JavaScript yang mengklik elemen untuk anda, memintas elemen mengaburkan.

<code class="python">element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
webdriver.ActionChains(driver).move_to_element(element).click(element).perform()</code>

Sebagai alternatif, kaedah ini menggunakan kelas ActionChains untuk mengalihkan kursor tetikus ke lokasi elemen dan melakukan klik, dengan berkesan memintas elemen menghalang.

Atas ialah kandungan terperinci Cara Mengatasi \'ElementClickInterceptedException\' dalam Splinter/Selenium apabila Mengklik pada Pautan. 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