c# - Selenium C# ImplicitWait 不会等待元素加载
问题描述
我创建了一个自定义方法来隐式等待元素加载,然后我在自定义 click 方法中使用它,如下所示:
public static void WeElementToBeClickable(this IWebElement element, int sec = 10)
{
var wait = new WebDriverWait(Driver.Browser(), TimeSpan.FromSeconds(sec));
wait.Until(ExpectedConditions.ElementToBeClickable(element));
}
public static void WeClick(this IWebElement element, int sec = 10)
{
element.WeElementToBeClickable();
element.Click();
}
然后我将它附加到我单击的任何元素上,以确保它始终轮询 DOM 以确保元素已加载,但它似乎并没有等待某些特定元素加载。
我正在搜索这个元素:
<span class="button add fr" onclick="GoToHash('/ContractorCommon/Contractor/ContractorAdd', null, 'Contractor'); "><span class="icon-add"></span> Contractor</span>
public IWebElement AddContractorIcon => Driver.FindElement(By.XPath("//span[@class='button add fr']"));
但它总是立即发出以下异常:
OpenQA.Selenium.NoSuchElementException : no such element: Unable to locate element: {"method":"xpath","selector":"//span[@class='button add fr']"}
我已经尽一切努力让它等待这个元素加载,但我似乎无法弄清楚。奇怪的是,如果我调试它......它会找到元素。
任何帮助将不胜感激!
解决方案
推荐阅读
- javascript - Express 配置为使用 CORS 不接受 CORS
- python - 关闭辅助窗口时刷新主窗口 PyQt5
- javascript - Service Worker 识别发布消息的 WindowClient
- swift - 如何快速从集合视图中删除过滤的项目?
- android-studio - 如何在 android studio (java) 中清除通知
- cpu - 为什么这个命令在 RiscV 中是不可能的?
- docker - 如何安装多个 TensorFlow 版本?
- arrays - 尝试在数组中输出多个最常见的字母
- r - 使用 dplyr rowwise 创建多个线性模型
- python - Regex - 通过 Beautiful Soup 提取 PubMed 出版物,从我的列表中识别出现在 PubMed 文章中的作者,并添加粗体 HTML 标签