我试图自动化一个方案,其中的条件是我必须选择所有的下拉选项,我必须逐个单击该选项。我尝试了代码,但它只点击第一个选项,并显示错误为陈旧元素不可点击。 请帮忙。硒webdriver中的陈旧元素异常
0
A
回答
0
StaleElementException
发生如果我找到一个元素,DOM得到更新,然后我尝试与元素进行交互。
那么我该如何处理呢?使用下面的方法点击试图单击元素多次:
public boolean retryingFindClick(By by) {
boolean result = false;
int attempts = 0;
while(attempts < 2) {
try {
driver.findElement(by).click();
result = true;
break;
} catch(StaleElementException e) {
}
attempts++;
}
return result;
}
采取了这种外观极好的解决方案,从here。
0
当你从下拉菜单中选择一个选项时,你的DOM也会得到更新。所以,你也需要更新你的对象。请参阅示例代码片段:
Select select = new Select(driver.findElement(By.cssSelector("your dropdown's locator"))); // you may use any locator of your choice
List<WebElement> options = select.getOptions();
for(WebElement option : options){
select.selectByVisibleText(option.getText());
//re-assign your select object since your page has been reloaded after selecting an option
select = new Select(driver.findElement(By.cssSelector("your dropdown's locator")));
}
+0
试过这一个,但显示相同 – Test
相关问题
- 1. 使用Java,如何处理WebDriver中的“陈旧元素异常”?
- 2. Python的硒:陈旧的元素参考异常错误
- 3. 陈旧的元素引用异常c#Selenium Webdriver
- 4. 在分页显示的webdriver陈旧元素参考异常
- 5. 硒的webdriver:元素不可见异常
- 6. 使用硒2检查陈旧元素?
- 7. 硒的webdriver异常
- 8. 硒 - 陈旧的元素参考:元素不附加到页面
- 9. Selenium陈旧的元素引用异常Python
- 10. 陈旧的元素引用:元素没有附加到页面文件在Chrome浏览器中的硒webdriver
- 11. 陈旧元素引用异常:如何解决?
- 12. 硒的webdriver超时异常
- 13. 获取陈旧元素引用:元素未附加到页面文档异常
- 14. 硒网络驱动程序陈旧引用异常
- 15. 硒陈旧元素错误:自动化谷歌的问题
- 16. 硒webdriver chromedriver路径异常
- 17. 硒的webdriver上表元素
- 18. 硒的webdriver定位元素
- 19. NoSuchElementException异常中的硒的webdriver在python
- 20. Selenium Webdriver - 刷新陈旧元素快捷方式?
- 21. 当遍历页面使用for-each循环时硒元素陈旧元素
- 22. 机器人框架 - Selenium Webdriver - Java:调用全局变量时的陈旧元素引用异常
- 23. Selenium Webdriver - 单击多个下拉列表时出现陈旧元素异常。 DOM dint更改
- 24. StaleElementReferenceException:陈旧的元素参考:
- 25. 硒陈旧元素异常(在运行测试时发现而不是在调试时发现)
- 26. 线程“main”中的异常org.openqa.selenium.StaleElementReferenceException:陈旧的元素引用:元素未附加到页面文档
- 27. Selenium WebDriver - 无法找到元素异常
- 28. Java webdriver:元素不可见异常
- 29. 硒的webdriver implicitly_wait导致ClassCastException异常
- 30. 硒异常试图当元素
您应该确保页面已加载并且所有请求都已完成,之后您可以搜索您的元素。 – lauda
你使用POM吗?如果是的话,我可以提出一些建议。 –
是的,请告诉我 – Test