(从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
找不到类型或名称空间名称“ WebDriverWait”(您是否缺少using指令或程序集引用?)
即使我通过添加Selenium参考
using OpenQA.Selenium;
在查找WebDriverWait的文档时,您会发现应该有一个名为
OpenQA.Selenium.Support.UI
但是我无法通过代码中的“使用”来访问它。
为什么会这样? 在哪里可以找到WebDriverWait类?
幸运的是,我有时读评论答案一样,所以我在整个排名最高的注释中的解决方案绊倒在这里:
WebDriverWait来自OpenQA.Selenium.Support.UI命名空间, 位于NuGet上 名为Selenium WebDriver支持类 的 单独软件包中
谢谢@Ved!
在Visual Studio中,这意味着您需要安装两个软件包:
来自Java和Maven,这并不是一件容易的事(至少对我而言;-),因为直到现在,我只需要包含一个并且只有一个依赖关系才能获得“所有的好东西”,如下所示:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.46.0</version> </dependency>
*将此问题发布为包含答案的问题,因为它花费了我太多的时间和运气,无法找到答案。