[英]Cannot find WebDriverWait class in OpenQa Selenium 3.7
[英]Cannot find WebDriverWait class in OpenQA.Selenium (C#)
(從 Java-Selenium 遷移到 C#-Selenium)
在使用 Selenium 和 C# 搜索顯式等待時,我發現有幾篇文章的代碼看起來類似於 Java-Counterpart:
例如這里:
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0,0,5));
wait.Until(By.Id("login"));
或在這里:
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("locator")));
WebDriverWait 來自 OpenQA.Selenium.Support.UI 命名空間,並在一個名為 Selenium WebDriver Support Classes 的單獨包中
但:
當我嘗試在 Visual Studio 中自己編寫代碼(通過 NuGet 獲取 Selenium 包)時,在我的代碼中使用WebDriverWait
將提示消息:
找不到類型或命名空間名稱“WebDriverWait”(您是否缺少 using 指令或程序集引用?)
即使我通過
using OpenQA.Selenium;
在查找WebDriverWait的文檔時,您會發現,應該有一個名為
OpenQA.Selenium.Support.UI
但是我無法通過代碼中的“使用”訪問它。
為什么會發生這種情況? 在哪里可以找到 WebDriverWait 類?
幸運的是,我有時也會閱讀答案的評論,所以我在此處排名最高的評論中偶然發現了解決方案:
WebDriverWait [是] 來自 OpenQA.Selenium.Support.UI 命名空間,並在 NuGet 上名為 Selenium WebDriver Support Classes的單獨包中
謝謝@Ved!
在 Visual Studio 中,這意味着您需要安裝兩個包:
來自 Java 和 Maven,這不是微不足道的(至少對我來說 ;-),因為直到現在我只需要包含一個並且只有一個依賴項來獲得“所有好東西”,如下所示:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.46.0</version>
</dependency>
* 將此作為一個包含答案的問題發布,因為我花了太多時間和運氣來絆倒答案。
你試過添加嗎?
using OpenQA.Selenium.Support.UI;
這應該就是你所需要的。 根據您的 IDE,它可能 (?) 會有一個幫助程序來查找和添加缺失的引用。 我使用 Visual Studio。 我只是輸入我知道應該在那里的內容。 當 IDE 在 WebDriverWait 上放置紅色波浪線時,我將鼠標懸停在它上面,它會顯示一個工具提示,指出我缺少參考,然后我單擊鏈接顯示潛在的修復。 在新的工具提示中,它顯示了幾個選項,通常第一個是添加using
語句。 我點擊那個,紅色的波浪線消失了。
我真的很喜歡 Visual Studio,但在過去 9 個月左右的時間里我一直在使用 Eclipse,我更喜歡 Eclipse 處理這個問題的方式。 我認為它更直觀......但這只是我。
編輯
只是想為未來的讀者說清楚……我不使用 NuGet。 我只是下載 Selenium .Net 包並將 4 個 DLL 放在我的項目中/附近,然后將所有 4 個 DLL 的引用添加到我的 Visual Studio 項目中。 一旦我這樣做並使用上面的說明,它就對我有用。
WebDriverWait 在 OpenQA.selenium 中不可用。 其可用的 SeleniumExtras.WaitHelpers
using OpenQA.Selenium;
using SeleniumExtras.WaitHelpers;
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.Id("Test")));
Selenium.WebDriver.WaitExtentions。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.