datepicker中的StaleElementReferenceException

时间:2016-01-15 07:40:41

标签: java selenium-webdriver

我可以从日期选择器中选择日期,日期和年份,但是在选择之后,页面将被刷新并且Webdriver元素被分离并获得StaleElementReferenceException。我不了解如何构建对象实例作为日期选择器,它不能再次单击。

1 个答案:

答案 0 :(得分:0)

WebElement dateWidget = getDriver().findElement(DATEPICKER_WIDGET);
    List<WebElement> rows = dateWidget.findElements(By.tagName("tr"));

    for (WebElement row : rows) {
        List<WebElement> columns = row.findElements(By.tagName("td"));
        for (WebElement cell : columns) {
            try{
            if (cell.getText().equals(String.valueOf(calendar.get(Calendar.DATE)))) {
                        cell.findElement(By.linkText(String.valueOf(dayValue))).click();
                boolean flag = commonpage.isAlertPresent();
                if (flag == true) {
                    String text = commonpage.closeAlertAndGetItsText();
                    addScreenshot("Alert text: " + text);
                }
                break;
                }}catch(StaleElementReferenceException e){

                }

问题是在选择了正确的日期之后,我得到了一个警报框,而且处理得非常完美。但是在警告框之后,页面被刷新,并且当页面被刷新时,selenium在识别什么是单元格(WebElement)方面存在问题。不了解如何重新实例化WebElement单元格。