Cómo hacer clic en los elementos que se encuentran en la celda de la tabla de selenio

prepucio:

Escribí método que obtiene un valor de texto de celular por número de fila y el nombre de la columna.

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

Pero hay iconos en las células (como se puede ver en la imagen, no puede haber una, dos o cuatro iconos) Los iconos con XPath

Y ahora quiero hacer clic en todos ellos. O haga clic en el icono específico

Y debo admitir que esta tabla se encuentra en muchas páginas con diferente número de iconos en la célula, y quiero utilizar este método para todos ellos.

¿Cómo puedo modificar este método? O ¿qué debo hacer?

Dipak Bachhav:

Por favor, consulte más abajo solución:

Si desea hacer clic en el elemento icono específico, puede utilizar el índice rowNumber hacer clic en él, sólo echa de lo contrario usar moveToElement usando clase Action antes mientras se hace clic sobre el elemento:

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();
    }

o si desea hacer clic en todos ellos, uno por uno:

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

    });

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=365840&siteId=1
Recomendado
Clasificación