Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Cekap Menunggu Kehadiran Elemen dalam Selenium C# WebDriver?

Bagaimana untuk Cekap Menunggu Kehadiran Elemen dalam Selenium C# WebDriver?

Linda Hamilton
Linda Hamiltonasal
2025-01-25 19:01:11950semak imbas

How to Efficiently Wait for Element Presence in Selenium C# WebDriver?

Selenium C# WebDriver: Teknik menunggu elemen yang kuat

Berinteraksi dengan cekap dengan elemen web di Selenium memerlukan memastikan kehadiran mereka sebelum mencuba sebarang tindakan. Ini menghalang kesilapan biasa yang disebabkan oleh unsur -unsur yang tidak dimuatkan dalam masa. Mari kita meneroka strategi menunggu yang berkesan menggunakan

dan WebDriverWait. ExpectedConditions

Pendekatan standard menggunakan

dan WebDriverWait: ExpectedConditions.ElementIsVisible

<code class="language-csharp">WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("login")));</code>
Kod ini menunggu sehingga 5 saat untuk elemen dengan id "login" untuk menjadi kelihatan. Untuk keringkasan, ungkapan lambda boleh digunakan:

<code class="language-csharp">wait.Until(d => d.FindElement(By.Id("login")).Displayed);</code>
Walau bagaimanapun, bergantung semata -mata pada menunggu yang tersirat boleh memberi kesan negatif terhadap prestasi. Pendekatan yang lebih terkawal melibatkan kaedah lanjutan tersuai untuk

: FindElement

<code class="language-csharp">public static class WebDriverExtensions
{
    public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds)
    {
        if (timeoutInSeconds > 0)
        {
            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
            return wait.Until(drv => drv.FindElement(by));
        }
        return driver.FindElement(by);
    }
}</code>
Kaedah lanjutan ini membolehkan anda menentukan masa tamat. Penggunaan:

<code class="language-csharp">var btn = driver.FindElement(By.CssSelector("#login_button"), 10);
btn.Click();</code>
Kaedah ini cuba mencari elemen dengan pemilih CSS "#login_button" dalam masa 10 saat. Jika elemen tidak dijumpai dalam masa tamat,

akan dibuang. Ini memberikan cara yang lebih tepat dan cekap untuk mengendalikan elemen menunggu, meningkatkan keteguhan keseluruhan ujian selenium anda. NoSuchElementException

Atas ialah kandungan terperinci Bagaimana untuk Cekap Menunggu Kehadiran Elemen dalam Selenium C# WebDriver?. 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