如何单击位于 table Selenium 单元格中的元素
How to click on elements which are located in cell of the table Selenium
我写了一个方法,通过行号和列名从单元格中获取文本值。
public String getValueFromCell(int rowNumber, String columnName){
List<Map<String, WebElement>> rowsWithColumnsByHeadings = getRowsWithColumnsByHeadings();
return rowsWithColumnsByHeadings.get(rowNumber - 1).get(columnName).getText();
}
但单元格中有图标(如您在屏幕截图中看到的,可以有一个、两个或四个图标)
现在我想点击所有这些。或点击特定图标
而且我必须承认这个 table 位于单元格中图标数量不同的许多页面上,我想对所有页面都使用这种方法。
我该如何修改这个方法?或者我该怎么办?
请检查以下解决方案:
如果你想点击特定的图标元素,那么你可以使用 rowNumber 索引来点击它,只需检查否则在点击元素之前使用 Action class 使用 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();
});
我写了一个方法,通过行号和列名从单元格中获取文本值。
public String getValueFromCell(int rowNumber, String columnName){
List<Map<String, WebElement>> rowsWithColumnsByHeadings = getRowsWithColumnsByHeadings();
return rowsWithColumnsByHeadings.get(rowNumber - 1).get(columnName).getText();
}
但单元格中有图标(如您在屏幕截图中看到的,可以有一个、两个或四个图标)
现在我想点击所有这些。或点击特定图标
而且我必须承认这个 table 位于单元格中图标数量不同的许多页面上,我想对所有页面都使用这种方法。
我该如何修改这个方法?或者我该怎么办?
请检查以下解决方案:
如果你想点击特定的图标元素,那么你可以使用 rowNumber 索引来点击它,只需检查否则在点击元素之前使用 Action class 使用 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();
});