单击失败,因为元素不可见
本文关键字:元素 因为 失败 单击 | 更新日期: 2023-09-27 18:28:16
我使用以下命令单击网页上的元素:
driver.FindElement(By.Name("SearchIcon")).Click();
HTML:
<span class="ticon ti-search ti-1x" name="SearchIcon"> </span>
这被认为是非常容易和艰难的,但我得到了:
"{"errorMessage":"元素当前不可见,可能无法操作","request":{"headers":"Accept":"application/json,image/png","Connection":"Close","Content Length":"0","Content-Type":"applications/json;charset=utf-8","Host":"localhost:54912"},"httpVersion":"1.1","method":"POST","POST":","url":"/click","urlParsed":
放置
NUnit.Framework.Assert.IsTrue(driver.FindElement(By.Name("SearchIcon")).Enabled);
在click语句通过之前,很明显元素就在那里,并且在测试运行后可以看到,所以我不知道这里出了什么问题。
我知道这有点过时,但我偶然发现了它。它可能会帮助其他人。
您可以创建一个扩展方法来检查元素是否存在:
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());