小编Rup*_*nde的帖子

如何在尝试从日期选择器中选择日期时修复"陈旧元素引用异常"?

我试图从选择日期日期选择器.继是代码

WebDriver d=new FirefoxDriver();
Actions a=new Actions(d);
String date="14";
d.get("http://www.eyecon.ro/bootstrap-datepicker/");
d.findElement(By.cssSelector("div#dp3>span")).click();
List<WebElement> trs=d.findElements(By.cssSelector("div.datepicker-days>table>tbody>tr"));
       for(WebElement tr:trs) {
            List<WebElement> tds=tr.findElements(By.tagName("td"));
            for(WebElement td:tds) {
                if(date.equals(td.getText())) {
                    a.moveToElement(td).click().build().perform();

                }
            }
Run Code Online (Sandbox Code Playgroud)

}

使用上面的代码,我在这行代码中得到了陈旧的元素引用异常

"if(date.equals(td.getText())) {"
Run Code Online (Sandbox Code Playgroud)

所以我已将代码更改为此

for(WebElement td:tds) {
                while(i<4) {
                    try {
                        if(date.equals(td.getText())) {
                            a.moveToElement(td).click().build().perform();

                        }
                        break;
                    }catch(Exception ex) {

                    }
                    System.out.println(i);
                    i++;
                }
            }
Run Code Online (Sandbox Code Playgroud)

现在我可以选择日期.但是脚本仍然抛出过时的元素引用异常.脚本现在在此行显示错误

List<WebElement> tds=tr.findElements(By.tagName("td"));
Run Code Online (Sandbox Code Playgroud)

我正在研究过去3天.关于如何解决这个问题的任何建议.提前致谢

selenium webdriver selenium-webdriver

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

selenium ×1

selenium-webdriver ×1

webdriver ×1