Selenium C#Webdriver:我收到错误:'iWebDriver'不包含'WaitforElement'的定义

时间:2017-03-18 17:15:05

标签: c# selenium selenium-webdriver webdriver

我是Selenium和C#的新手......我正在使用C#进行selenium应用程序开发。我在网页上有一个下拉菜单。单击下拉菜单后,我希望selenium单击确切的名称。所以我做了这样的事情:

C#/ NUnit代码:

"parser": "babel-eslint"

但是当我构建我的代码时,我收到以下错误:

  

'iWebDriver'不包含'WaitforElement'的定义

2 个答案:

答案 0 :(得分:0)

好的,我可以举个例子,但我不知道c#,但我可以举出 Ruby Selenium Binding的例子。

   <servlet>
        <servlet-name>ServletName</servlet-name>
        <servlet-class>path_to_servlet_class</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletName</servlet-name>
        <url-pattern>/servlet_url_pattern</url-pattern>
    </servlet-mapping>

由于我已经给出了隐式等待20,每当它通过driver.manage.timeouts.implicit_wait=20 driver.find_element(:link_text,"z").click; driver.find_element(:link_text,"xxxxx").click 函数找到元素时,它等待20分钟,所以你的外部等待语句不是必需的。

C#代码可能是(我不知道C#,我从网上接过它并把它放在这里)

find_element

答案 1 :(得分:0)

它不像你演示的那样工作。

下一个代码是一个如何编写它的例子:

WebDriverWait watiDriver = new WebDriverWait(Driver, TimeSpan.FromSeconds(10));
IWebElement element = watiDriver.Until(x => Driver.FindElement(By.CssSelector("")));

Driver是你的webdriver实例。

如果要在显示时使用它,则需要向webdriver类添加扩展方法。为此,只需创建一个新的静态类(具有任何名称)并将下一个代码插入其中:

public static IWebElement WaitForElement(this IWebDriver driver, By how)
{
     webDriverWait watiDriver = new WebDriverWait(Driver, TimeSpan.FromSeconds(10));
     return watiDriver.Until(x => Driver.FindElement(FindElement(how));
}