首頁 > 後端開發 > C++ > 如何有效地等待Selenium C#Web驅動器中的元素存在?

如何有效地等待Selenium C#Web驅動器中的元素存在?

Linda Hamilton
發布: 2025-01-25 19:01:11
原創
944 人瀏覽過

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

硒c#webdriver:強大的元素等待技術

>有效地與硒中的網路元素互動,需要在嘗試採取任何行動之前確保其存在。 這樣可以防止因未及時載入元素而引起的常見錯誤。 讓我們使用WebDriverWaitExpectedConditions>。

標準方法利用

>和WebDriverWaitExpectedConditions.ElementIsVisible>

<code class="language-csharp">WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("login")));</code>
登入後複製
此程式碼最多等待5秒鐘的ID「登入」才能看到。 為了簡潔起見,可以使用lambda表達式:

但是,僅依靠隱式等待會對表現產生負面影響。一種更受控的方法涉及一種用於的自訂擴展方法:
<code class="language-csharp">wait.Until(d => d.FindElement(By.Id("login")).Displayed);</code>
登入後複製
>

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>
登入後複製

此方法試圖在10秒內使用CSS選擇器「 #Login_Button」找到元素。 如果在超時內找不到元素,則將拋棄a

。這提供了一種更精確,更有效的方法來處理元素等待,從而改善了硒測試的整體穩健性。

以上是如何有效地等待Selenium C#Web驅動器中的元素存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板