【发布时间】:2026-01-29 10:30:02
【问题描述】:
我需要一些帮助,因为当我尝试解析要点击的标签列表时,我不断收到 StaleElementReference。
我所做的是在页面上迭代页面并生成一个带有所有 a 标签的对象 List
private List<IWebElement> _pageLinks;
public List<IWebElement> pageLinks
{
get
{
if (_pageLinks == null)
{
_pageLinks = InfoDriver.FindElements(By.TagName("a")).ToList();
}
return _pageLinks;
}
}
然后我想解析这个列表,然后点击每一个,然后返回到引用它的页面。
private static SeleniumInformation si = new SeleniumInformation(ffDriver);
si.pageLinks.ForEach(i =>
{
i.Click();
System.Threading.Thread.Sleep(1000);
ffDriver.Navigate().Back();
});
发生的情况是,在第一次单击后,它会转到新页面,然后返回到起始页面,但无法获取下一个链接。我已经尝试将它设置为静态元素,设置一个支持字段,以便它检查是否已经存在数据但是似乎在单击时 IwebElement 会丢失列表并且它也不会重建列表所以我得到了未处理 StaleElementReference 异常且未在缓存中找到元素。
这是 Selenium 中 IWebElement 类的错误还是我做错了什么?任何帮助将不胜感激。
【问题讨论】:
标签: c# selenium-webdriver