java - 将表中的多个 UI 元素放入数组中

标签 java selenium selenium-webdriver automation automated-tests

我正在用 Java 编写 Selenium 测试,其中我的脚本首先对源系统运行查询并收集预期结果。在此示例中,我的查询返回 4 个成员(member)号码,然后我希望将其与 UI 上的表格进行交叉引用,以确保这 4 个成员(member)号码出现在表格上。我还需要确保 UI 上显示的成员(member)号码不超过或少于这 4 个。当源系统数据发生更改时,查询很可能会返回 3 或 5 个成员(member)号码,因此我需要足够智能的测试来根据查询结果知道要查找多少个成员(member)号码。

我认为针对 UI 断言查询结果的方法是将两个数据集放入数组中并运行断言 equals 以确保它们彼此匹配。

我的用户界面如下:

<tbody>
        <tr data-ng-repeat="member in searchresult" class="ng-scope odd" role="row">
            <td class="ng-binding sorting_1">27002</td>
            <td class="ng-binding">Test</td>
            <td class="ng-binding">Test</td>
            </td>
        </tr><tr data-ng-repeat="member in searchresult" class="ng-scope even" role="row">
            <td class="ng-binding sorting_1">55691</td>
            <td class="ng-binding">Standard</td>
            <td class="ng-binding">PGY2 TESTED</td>
            </td>
        </tr><tr data-ng-repeat="member in searchresult" class="ng-scope odd" role="row">
            <td class="ng-binding sorting_1">58716</td>
            <td class="ng-binding">Standard</td>
            <td class="ng-binding">PGY3 TESTED</td>
            </td>
        </tr><tr data-ng-repeat="member in searchresult" class="ng-scope even" role="row">
            <td class="ng-binding sorting_1">95362</td>
            <td class="ng-binding">Standard</td>
            <td class="ng-binding">STUDENT tested</td>
            </td>
        </tr></tbody>
</table>

您可以看到 4 个成员编号始终显示在“ng-binding sorting_1”类中。我想知道如何编写定位器来获取每个定位器并将它们放入数组中。

如果这不是此检查的方法,也欢迎听取不同的方法。

最佳答案

调用driver.findElements()以获取第一个表列中的所有td。

String locator = "tbody > tr[data-ng-repeat='member in searchresult'] > td.sorting_1";

List<WebElement> tds = driver.findElements(By.cssSelector(locator));

ArrayList<String> memberNums = new ArrayList<String>()

for(WebElement ele : tds) {
  memberNums.add(ele.getText());
}

关于java - 将表中的多个 UI 元素放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50691772/

相关文章:

java - 使用不同的类加载器在 Java 中动态创建 lambda

java - Spring ClassCastException 与通用表单 Bean 类

java - webdrivermanager 是否支持 RemoteWebDriver (Selenium Grid)?

clojure - 如何在 clj-webdriver 中为 phantomjs 驱动程序设置 useragent?

java - Selenium : Not able to click on WebElement

Java 日历 - 设置 day_of_week 后日期不可预测

java - GWT 用 Ja​​va 类替换 JSP

java - 使用 Gecko 驱动程序运行我的 Selenium 脚本时出现 "org.openqa.selenium.WebDriverException: Unsupported Marionette protocol version 2"错误

python - 通过网页上的多个 xpath 元素进行过滤

python - 引发 TimeoutException(消息、屏幕、堆栈跟踪)TimeoutException : Message: