Java Selenium为什么点击功能不起作用?

时间:2018-01-24 20:10:03

标签: java selenium selenium-webdriver webdriver click

为什么click()不起作用?

网站:

String startPage = "http://www.domiporta.pl/mieszkanie/sprzedam?Localization=dolno%C5%9Bl%C4%85skie&PageNumber=24&SortingOrder=InsertionDate";

代码:

List<WebElement> RowsMain = driver.findElements(By.className("detail-card__heading"));
for(int i=0;i<RowsMain.size();i++){
    driver.get(startPage);
    List<WebElement> rows = driver.findElements(By.className("detail-card__heading"));
    List<WebElement> cols=new ArrayList<WebElement>();
    cols=rows.get(i).findElements(By.tagName("div"));
    for(WebElement col:cols) {
        col.click();
    }
}

为什么点击不起作用?

1 个答案:

答案 0 :(得分:0)

这是错误的,因为您导航出当前页面,因此DOM已被销毁。解决方案很简单,每次导航出页面时都会找到元素。请参阅下面的代码。

int rowCount = driver.findElements(By.className("detail-card__heading")).size();
for(int i=0; i<rowCount; i++){
    List<WebElement> rows = driver.findElements(By.className("detail-card__heading"));
    int colsCount = rows.get(i).findElements(By.tagName("div")).size();
    for(int j=0;j<colsCount; j++) {
        rows = driver.findElements(By.className("detail-card__heading"));
        List<WebElement>cols = rows.get(i).findElements(By.tagName("div"));
        cols.get(j).click();
        driver.get(startPage);
    }
}