Rumah >Java >javaTutorial >Mengapa Ujian Log Masuk Gmail Selenium WebDriver Saya Melemparkan \'ElementNotInteractableException\' Apabila Memasukkan Kata Laluan?

Mengapa Ujian Log Masuk Gmail Selenium WebDriver Saya Melemparkan \'ElementNotInteractableException\' Apabila Memasukkan Kata Laluan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-28 04:36:10269semak imbas

Why Does My Selenium WebDriver Gmail Login Test Throw an

Selenium WebDriver Melemparkan Pengecualian dalam Thread "utama" org.openqa.selenium.ElementNotInteractableException

Isu:

Dalam ujian Selenium WebDriver senario yang bertujuan untuk menangkap dan menguji log masuk Gmail, ujian gagal dengan "ElementNotInteractableException" apabila cuba memasukkan kata laluan.

Punca:

"ElementNotInteractableException" dilemparkan apabila WebDriver menemui elemen yang tidak boleh berinteraksi, walaupun terdapat dalam HTML DOM.

Penyelesaian:

  • Tindan Sementara: Jika elemen lain menindan sementara elemen sasaran, mendorong ExplicitWait dengan ExpectedCondition "elementToBeClickable "boleh selesaikan ini.
  • Tindan Kekal: Jika tindanan kekal, hantar WebDriver sebagai "JavascriptExecutor" dan laksanakan operasi klik melalui JavaScript.

Khusus untuk Isu ini:

Dalam ini senario, puncanya ialah kekurangan penantian yang jelas untuk medan kata laluan menjadi boleh ditukar dalam DOM HTML. Menambah ExplicitWait dengan ExpectedCondition "elementToBeClickable" menangani isu ini.

Penyelesaian Kod:

...
WebDriver driver = new FirefoxDriver();
...
// Wait up to 20 seconds for the password field to become clickable
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='password']")));
password.sendKeys("test1");
...

Dengan melaksanakan penyelesaian ini, ujian harus diteruskan dengan lancar, menangkap kata laluan dengan betul dan melengkapkan ujian log masuk Gmail.

Atas ialah kandungan terperinci Mengapa Ujian Log Masuk Gmail Selenium WebDriver Saya Melemparkan \'ElementNotInteractableException\' Apabila Memasukkan Kata Laluan?. 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