一尘不染

在OpenQA.Selenium(C#)中找不到WebDriverWait类

selenium

(从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支持类的程序包中

但是:
当我尝试在Visual Studio中自己编写代码(通过NuGet获取Selenium包)时,WebDriverWait在我的代码中使用将会提示消息:

找不到类型或名称空间名称“ WebDriverWait”(您是否缺少using指令或程序集引用?)

即使我通过添加Selenium参考

using OpenQA.Selenium;

在查找WebDriverWait文档时,您会发现应该有一个名为

OpenQA.Selenium.Support.UI

但是我无法通过代码中的“使用”来访问它。

为什么会这样? 在哪里可以找到WebDriverWait类?


阅读 504

收藏
2020-06-26

共1个答案

一尘不染

幸运的是,我有时读评论答案一样,所以我在整个排名最高的注释中的解决方案绊倒在这里:

WebDriverWait来自OpenQA.Selenium.Support.UI命名空间, 位于NuGet上 名为Selenium
WebDriver支持类
单独软件包中

谢谢@Ved!

在Visual Studio中,这意味着您需要安装两个软件包:

  • NuGet包“ Selenium.WebDriver ”并且也
  • NuGet包“ Selenium.Support

来自Java和Maven,这并不是一件容易的事(至少对我而言;-),因为直到现在,我只需要包含一个并且只有一个依赖关系才能获得“所有的好东西”,如下所示:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>2.46.0</version>
</dependency>

*将此问题发布为包含答案的问题,因为它花费了我太多的时间和运气,无法找到答案。

2020-06-26