c# - 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 个使用它的测试并且知道它们都不起作用,我真的改变了任何东西,我不知道开发人员是否做了,但我希望你们能帮助我。
解决方案
您可以使用更规范的定位器策略,如下所示:
[FindsBy(How = How.CssSelector, Using = "input[aria-controls='table'][type='search']")]
private IWebElement buscadorConfig;
推荐阅读
- amazon-web-services - 我可以将 AWS Lambda 的调用分散在 5 分钟的时间间隔内吗?
- hex - 这个十六进制数据是否存在有意义的非十六进制数字确实存在的模式?
- apache-kafka - 根据有效负载将消息路由到不同的 Kafka 主题
- c - 如何以更快的速度打印像素阵列?
- html - 我的浏览器无法正确显示此字体
- django - 本地环境和 aws 之间的静态文件问题
- reactjs - 第 3 方 React 组件未更新
- c++ - 无法在 Visual Studio 2019 中访问 GLFW/glfw3.h
- r - 创建一个为每次迭代写入 CSV 文件的 for 循环
- javascript - 代码拆分后找不到客户端代码