首页 > 解决方案 > OpenQA.Selenium.ElementNotInteractableException:元素不可交互

问题描述

我正在做一些测试,当我使用我已经为之工作的搜索器运行测试时,出现了这个错误

System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
  ----> OpenQA.Selenium.ElementNotInteractableException : element not interactable

然后我尝试运行一个我知道有效的测试,当需要使用搜索器时,出现相同的错误,这有点奇怪,因为我没有看到 HTML 代码有任何差异,并且搜索器确实可以工作,如果我手动进入页面。

这是我操纵搜索器的代码:

[FindsBy(How = How.CssSelector, Using = "input")]
private IWebElement buscadorConfig;

public ConfigurationUsuario buscarTabla(string input_search)
{
       buscadorConfig.SendKeys(input_search);
       return new ConfigurationUsuario(driver);
}

以下是使用它的任何测试的示例:

        usuario.clickConfiguration();
        System.Threading.Thread.Sleep(2000);
        
        configuracion.buscarTabla("041097");
        System.Threading.Thread.Sleep(2000);

这是搜索器的 HTML 代码:

<div id="table_filter" class="dataTables_filter">
<label>Search:<input type="search" class="" placeholder="" aria-controls="table"></label>
</div>

老实说,我不知道为什么搜索者突然停止在我的测试脚本中工作,我有 10 个使用它的测试并且知道它们都不起作用,我真的改变了任何东西,我不知道开发人员是否做了,但我希望你们能帮助我。

标签: c#visual-studioseleniumselenium-webdrivercss-selectors

解决方案


您可以使用更规范的定位器策略,如下所示:

[FindsBy(How = How.CssSelector, Using = "input[aria-controls='table'][type='search']")]
private IWebElement buscadorConfig;

推荐阅读