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>
. 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
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(d => d.FindElement(by)); } return driver.FindElement(by); // No wait if timeout is 0 } }</code>
lebih besar daripada 0, ia menggunakan FindElement
; Jika tidak, ia melakukan panggilan langsung timeoutInSeconds
. WebDriverWait
FindElement
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>
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!