Rumah >Java >javaTutorial >Bagaimana untuk Menunggu Keterlihatan Elemen dalam WebDriver Sebelum Mengklik?

Bagaimana untuk Menunggu Keterlihatan Elemen dalam WebDriver Sebelum Mengklik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-27 05:58:10294semak imbas

How to Reliably Wait for Element Visibility in WebDriver Before Clicking?

WebDriver: Menunggu Kehadiran Elemen

Soalan: Bagaimanakah saya boleh menunggu dengan pasti elemen untuk kelihatan sebelum ini mengkliknya? Penantian tersirat sahaja nampaknya tidak konsisten.

Untuk menangani perkara ini, penantian tersirat boleh digunakan. Walau bagaimanapun, penyelesaian yang lebih dipercayai ialah:

for (int second = 0;; second++) {
    Thread.sleep(sleepTime);
    if (second >= 10)
        fail("timeout : " + vName);
    try {
        if (driver.findElement(By.id(prop.getProperty(vName))).isDisplayed())
            break;
    } catch (Exception e) {
        writeToExcel("data.xls", e.toString(), parameters.currentTestRow, 46);
    }
}
driver.findElement(By.id(prop.getProperty(vName))).click();

Kod ini menunggu sehingga elemen kelihatan atau nilai tamat masa dicapai. Walau bagaimanapun, ia memerlukan pengguna untuk menentukan masa menunggu, yang boleh menyusahkan.

Jawapan: Gunakan keupayaan menunggu eksplisit WebDriver untuk memastikan menunggu yang boleh dipercayai untuk kehadiran elemen.

Kod berikut menunjukkan pendekatan yang disyorkan:

WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));

Sebagai alternatif, anda boleh menggunakan:

wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>));

Kaedah ini menyediakan kawalan terperinci ke atas keadaan menunggu, menghapuskan keperluan untuk logik tidur tersuai.

Tambahan Sumber:

  • [ExpectedConditions](https://seleniumhq.github.io/selenium/javadoc/3.141.59/org/openqa/selenium/support/ui/ExpectedCondit ions.html)
  • [WebDriverWait](https://seleniumhq.github.io/selenium/javadoc/3.141.59/org/openqa/selenium/support/ui/WebDriverWait.html)

Atas ialah kandungan terperinci Bagaimana untuk Menunggu Keterlihatan Elemen dalam WebDriver Sebelum Mengklik?. 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