gpt4 book ai didi

selenium - 使用 Selenium 选择多个元素

转载 作者:行者123 更新时间:2023-12-02 00:15:47 27 4
gpt4 key购买 nike

我正在使用以下 Xpath 创建所有可用元素的列表。

IList<IWebElement> test= Driver.FindElements(By.XPath("//*[@id='middle-container']//div[@class='middle-section match-list']//div[contains(@class,'title')]//span[contains(text(),'" + Event.Trim() + "')]//..//..//..//..//div[contains(@class,'drop-down-content')]//table[contains(@class,'hidden-xs')]//tr//td[contains(@class,'bettype')]//a[@class='bet']`//span"));

因此需要单击该 Xpath 中所有可用的元素。运行 foreach 循环:

foreach (var item in availableSports)
{
item.Click();
}
}

我的问题是,如果测试包含超过 10 个元素,我认为它会在大约 8 到 9 次点击后停止点击事件,并引发此错误:

StaleElementReferenceException

所以只是想知道如何编写将继续单击直到最后一个可用元素而不会失败的方法。

最佳答案

您收到 StaleElementReferenceException,因为执行 FindElements 操作后 DOM 中的某些内容发生了变化。

您提到您正在单击列表中的项目。此单击操作是否重新加载页面或导航到其他页面。在这两种情况下,DOM 都发生了变化。因此出现了异常。

您可以使用以下逻辑来处理这个问题(希望如此)。我是一个JAVA人,以下代码是JAVA代码。但我想你已经明白了。

IList<IWebElement> test= Driver.FindElements(By.XPath("//*[@id='middle-container']//div[@class='middle-section match-list']//div[contains(@class,'title')]//span[contains(text(),'" + Event.Trim() + "')]//..//..//..//..//div[contains(@class,'drop-down-content')]//table[contains(@class,'hidden-xs')]//tr//td[contains(@class,'bettype')]//a[@class='bet']`//span"));
// Instead of using the for each loop, get the size of the list and iterate through it
for (int i=0; i<test.length; i++) {
try {
test.get(i).click();
} catch (StaleElementReferenceException e) {
// If the exception occurs, find the elements again and click on it
test = test= Driver.FindElements(By.XPath("//*[@id='middle-container']//div[@class='middle-section match-list']//div[contains(@class,'title')]//span[contains(text(),'" + Event.Trim() + "')]//..//..//..//..//div[contains(@class,'drop-down-content')]//table[contains(@class,'hidden-xs')]//tr//td[contains(@class,'bettype')]//a[@class='bet']`//span"));
test.get(i).click();
}
}

希望这对您有帮助。

关于selenium - 使用 Selenium 选择多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33074056/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com