首页 > 解决方案 > 如何单击位于 Selenium 表格单元格中的元素

问题描述

我编写了通过行号和列名从单元格中获取文本值的方法。

public String getValueFromCell(int rowNumber, String columnName){
        List<Map<String, WebElement>> rowsWithColumnsByHeadings = getRowsWithColumnsByHeadings();
        return rowsWithColumnsByHeadings.get(rowNumber - 1).get(columnName).getText();
    }

但是单元格中有图标(如您在屏幕截图中所见,可以有一个、两个或四个图标) 带有 Xpath 的图标

现在我想点击所有这些。或点击特定图标

而且我必须承认,这个表格位于许多页面上,单元格中的图标数量不同,我想对所有这些页面都使用这种方法。

我该如何修改这个方法?或者我该怎么办?

标签: javaseleniumselenium-webdriverxpathpageobjects

解决方案


请检查以下解决方案:

如果要单击特定图标元素,则可以使用 rowNumber 索引单击它,否则在单击元素之前使用 Action 类检查是否使用 moveToElement :

public String getValueFromCell(int rowNumber, String columnName){
        List<Map<String, WebElement>> rowsWithColumnsByHeadings = getRowsWithColumnsByHeadings();
        List<WebElement> elements = driver.findElements(By.className("mat-icon.mat-icon.notranslate.material-icon.mat-icon-n0-color"))
        elements.get(rowNumber).click()
        return rowsWithColumnsByHeadings.get(rowNumber - 1).get(columnName).getText();
    }

或者,如果您想一一点击它们:

    List<WebElement> elements = driver.findElements(By.className("mat-icon.mat-icon.notranslate.material-icon.mat-icon-n0-color"));
    elements.forEach(e -> {
        e.click();

    });

推荐阅读