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
Lepaskan: 2025-01-25 19:01:11
asal
944 orang telah melayarinya

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>
Salin selepas log masuk
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>
Salin selepas log masuk
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>
Salin selepas log masuk
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>
Salin selepas log masuk
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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan