Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Cekap Menunggu Kehadiran Elemen dalam 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
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!