我使用以下内容点击网页上的元素:
driver.FindElement(By.Name("SearchIcon")).Click();
HTML:
<span class="ticon ti-search ti-1x" name="SearchIcon"> </span>
我认为这是非常轻松和紧张的前进,但我得到了:
&#34; {&#34; errorMessage&#34;:&#34;元素目前无法显示,可能无法操作&#34;,&#34;请求&#34;:{&#34;标题& #34;:{&#34;接受&#34;:&#34; application / json,image / png&#34;,&#34;连接&#34;:&#34;关闭&#34;,&#34 ; Content-Length的&#34;:&#34; 0&#34;&#34;内容类型&#34;:&#34;应用/ JSON;字符集= UTF-8&#34;&#34;主机& #34;:&#34;本地主机:54912&#34;}&#34; httpVersion&#34;:&#34; 1.1&#34;&#34;方法&#34;:&#34; POST&# 34;,&#34;后&#34;:&#34;&#34;&#34; URL&#34;:&#34; /点击&#34;&#34; urlParsed&#34;:< / p>
提出
NUnit.Framework.Assert.IsTrue(driver.FindElement(By.Name("SearchIcon")).Enabled);
在点击语句通过之前显然元素在那里并且一旦测试运行就可见,所以我不会在这里弄错。
答案 0 :(得分:1)
我知道这有点旧,但我偶然发现了它。它可以帮助别人。
您可以创建一个检查元素是否存在的扩展方法:
public static bool Exists(this IWebElement element)
{
try
{
var text = element.Text;
}
catch (NoSuchElementException)
{
return false;
}
return true;
}
然后你可以断言:
var searchIcon = driver.FindElement(By.Name("SearchIcon"));
NUnit.Framework.Assert.IsTrue(searchIcon.Exists());