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

Bagaimana untuk Menunggu Elemen dalam Selenium C# WebDriver?

Patricia Arquette
Lepaskan: 2025-01-25 18:46:12
asal
271 orang telah melayarinya

How to Reliably Wait for an Element in Selenium C# WebDriver?

elemen yang boleh dipercayai menunggu di selenium c# webdriver

Berinteraksi dengan cekap dengan elemen web di Selenium C# memerlukan memastikan kehadiran mereka sebelum mencuba sebarang tindakan. Ini menghalang kesilapan biasa yang disebabkan oleh unsur -unsur yang tidak dimuatkan dalam masa. Berikut adalah dua kaedah yang mantap untuk melaksanakannya:

Kaedah 1: Menggunakan WebDriverwait dengan ekspresi lambda

Pendekatan ini menggunakan

dengan jelas menunggu elemen. Ekspresi lambda dengan ringkas untuk kewujudan elemen. WebDriverWait

<code class="language-csharp">WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
IWebElement element = wait.Until(d => d.FindElement(By.Id("login")));</code>
Salin selepas log masuk
Kod ini menunggu sehingga 5 saat untuk elemen dengan id "login". Jika elemen dijumpai, ia diberikan kepada pembolehubah

. Jika tidak dijumpai dalam waktu tamat, element dibuang. TimeoutException

Kaedah 2: Membuat kaedah pelanjutan tersuai untuk IWebDriver Untuk meningkatkan prestasi dan mengelakkan menunggu yang tersirat yang wujud dalam panggilan berulang

, kaedah lanjutan tersuai menawarkan penyelesaian yang lebih terkawal dan cekap.

FindElement

Kaedah lanjutan ini menambah beban
<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(d => d.FindElement(by));
        }
        return driver.FindElement(by); // No wait if timeout is 0
    }
}</code>
Salin selepas log masuk
yang menerima masa tamat. Jika

lebih besar daripada 0, ia menggunakan FindElement; Jika tidak, ia melakukan panggilan langsung timeoutInSeconds. WebDriverWait FindElement

Penggunaan contoh:

Contoh ini menunjukkan cara menggunakan kaedah lanjutan untuk menunggu unsur -unsur dengan pemilih CSS, menyediakan cara yang jelas dan efisien untuk mengendalikan kelewatan pemuatan elemen dalam ujian selenium anda. Memilih nilai masa tamat yang sesuai adalah penting untuk mengimbangi respons dan mengelakkan kelewatan yang tidak perlu.
<code class="language-csharp">var driver = new FirefoxDriver();
driver.FindElement(By.CssSelector("#login_button"), 10).Click(); // Waits 10 seconds
var employeeLabel = driver.FindElement(By.CssSelector("#VCC_VSL"), 10);
Assert.AreEqual("Employee", employeeLabel.Text);</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menunggu 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