Apabila menghadapi ralat ElementNotInteractable Webdriver, SemulacException ia menunjukkan bahawa unsur hadir pada DOM HTML tetapi berada dalam keadaan yang menghalang interaksi. Berikut ialah panduan langkah demi langkah untuk menyelesaikan isu ini:
ElementNotInteractableException, pengecualian W3C, timbul apabila elemen tidak dapat diakses disebabkan oleh halangan dalam kebolehcapaian atau keterlihatannya. Ini boleh dikaitkan dengan pelbagai sebab, yang akan kami terokai dan atasi dalam penyelesaian berikut.
Mengenal pasti dan Mengalih Keluar Sementara Tindanan:
Dalam kes di mana WebElement lain menindan elemen sasaran buat sementara waktu, anda boleh menggunakan ExplicitWait (WebDriverWait) bersama-sama dengan ExpectedCondition's invisibilityOfElementLocated. Ini akan menjeda pelaksanaan sehingga elemen yang menghalang menjadi tidak kelihatan. Walau bagaimanapun, pendekatan yang lebih tepat ialah menggunakan elementToBeClickable, memastikan elemen sasaran berada dalam keadaan boleh klik sebelum cuba berinteraksi dengannya.
Berikut ialah contoh kod untuk kedua-dua penyelesaian:
WebDriverWait wait2 = new WebDriverWait(driver, 10); wait2.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("xpath_of_element_to_be_invisible"))); driver.findElement(By.xpath("xpath_element_to_be_clicked")).click();
WebDriverWait wait1 = new WebDriverWait(driver, 10); WebElement element1 = wait1.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath_of_element_to_be_clicked"))); element1.click();
Mengalamatkan Tetap Tindanan:
Jika tindanan yang menyekat elemen sasaran kekal, anda boleh menggunakan antara muka JavascriptExecutor. Ini membolehkan anda melaksanakan kod JavaScript dalam penyemak imbas, termasuk mengklik pada elemen yang dimaksudkan.
WebElement ele = driver.findElement(By.xpath("element_xpath")); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click();", ele);
Atas ialah kandungan terperinci Mengapa Saya Mendapat ElementNotInteractableException dalam Selenium, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!