单击失败,因为元素不可见

本文关键字:元素 因为 失败 单击 | 更新日期: 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());