我是Selenium和C#的新手......我正在使用C#进行selenium应用程序开发。我在网页上有一个下拉菜单。单击下拉菜单后,我希望selenium单击确切的名称。所以我做了这样的事情:
C#/ NUnit代码:
"parser": "babel-eslint"
但是当我构建我的代码时,我收到以下错误:
'iWebDriver'不包含'WaitforElement'的定义
答案 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));
}