java StaleElementReferenceException:在缓存中找不到元素可能该页在查询命令持续时间或超时后已更改
我得到了这个例外。请解决它。组织。openqa。硒。StaleElementReferenceException:在缓存中找不到元素-可能页面在查找后已更改 命令持续时间或超时:5.10秒
代码:
List<WebElement> select_year = driver.findElements(By.xpath("//ul[@class='uib-datepicker-popup dropdown-menu ng-scope']/li/div/table/tbody/tr/td/button/span"));
for(WebElement ele: select_year)
{
String fyear=ele.getText();
if((syear).equals(fyear))
{
System.out.println(syear);
System.out.println(fyear);
ele.click();
List<WebElement>select_month=driver.findElements(By.xpath("//ul[@class='uib-datepicker-popup dropdown-menu ng-scope']/li/div/table/tbody/tr/td/button/span"));
for(WebElement ele2:select_month)
{
String fmonth=ele2.getText();
if((smonth).equals(fmonth))
{
ele2.click();
List<WebElement>select_day=driver.findElements(By.xpath("//ul[@class='uib-datepicker-popup dropdown-menu ng-scope']/li/div/table/tbody/tr/td/button/span"));
for(WebElement ele3:select_day)
{
String fday=ele3.getText();
Thread.sleep(3000);
if((sday).equals(fday))
{
ele3.click();
}
}
}
}
}
}
# 1 楼答案
不需要在这里循环。您只需找到包含文本的单个元素,然后按如下方式选择:-
已编辑:-如果希望在此处循环,只需在
if
条件变为真时break
循环,如下所示:-