java - 如何单击位于 Selenium 表格单元格中的元素
问题描述
我编写了通过行号和列名从单元格中获取文本值的方法。
public String getValueFromCell(int rowNumber, String columnName){
List<Map<String, WebElement>> rowsWithColumnsByHeadings = getRowsWithColumnsByHeadings();
return rowsWithColumnsByHeadings.get(rowNumber - 1).get(columnName).getText();
}
但是单元格中有图标(如您在屏幕截图中所见,可以有一个、两个或四个图标)
现在我想点击所有这些。或点击特定图标
而且我必须承认,这个表格位于许多页面上,单元格中的图标数量不同,我想对所有这些页面都使用这种方法。
我该如何修改这个方法?或者我该怎么办?
解决方案
请检查以下解决方案:
如果要单击特定图标元素,则可以使用 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();
});
推荐阅读
- c - 尝试使用两个指针在c中查找middel但程序崩溃链表
- active-directory - 在单个查询中以递归方式查找所有给定 SAM 帐户的 AD 组
- ios - 在 iOS 设备中,在 WebView 中打开内容时获取 _userSettingsForUser 移动
- qt - 如何将 QPushButton 设置为垂直增长?
- path - 不存在文件或目录:路径变量设置
- android - Android:BaseAdapter 重绘相同的数据
- python-3.x - 分析 Python 字节码
- qt - Qt5.9 Qml SPI接口实现
- c++ - 无法使用“struct Node *”类型的左值初始化“struct Node *”类型的参数
- javascript - 中间异步函数是否不必总是用 Javascript 中的 `async` 关键字包装?