Java 回收硒<;tr>;AngularJs填充表后的WebElements

Java 回收硒<;tr>;AngularJs填充表后的WebElements,java,angularjs,selenium,phantomjs,fluentlenium,Java,Angularjs,Selenium,Phantomjs,Fluentlenium,我目前正在尝试对一个严重依赖AngularJs的网站进行e2e测试,该网站使用Selenium/Fluentlenium 我以前使用过这种方法,没有任何问题,但似乎phantomJS根本无法处理运行的角度 如果我在Chrome中“查看页面源代码”,我看到的只是绑定(例如{{object.item}}),如果我“检查元素”,我得到的是我所期望的内容 假设我们的html如下所示(由$http加载,并假设$scope.objects填充后$scope.load为false): 鉴于此,我期望的html

我目前正在尝试对一个严重依赖AngularJs的网站进行e2e测试,该网站使用Selenium/Fluentlenium

我以前使用过这种方法,没有任何问题,但似乎phantomJS根本无法处理运行的角度

如果我在Chrome中“查看页面源代码”,我看到的只是绑定(例如{{object.item}}),如果我“检查元素”,我得到的是我所期望的内容

假设我们的html如下所示(由$http加载,并假设$scope.objects填充后$scope.load为false):

鉴于此,我期望的html是:

<tr>
<td class="item1">one</td>
<td class="item2">two<td>
<td class="item3">three</td>
<td class="itemSafe"><input type="checkbox" disabled="true" ng-checked="object.itemSafe == 1"></td>
</tr>
<tr>
<td class="item1">four</td>
<td class="item2">five<td>
<td class="item3">six</td>
<td class="itemSafe"><input type="checkbox" disabled="true" ng-checked="object.itemSafe == 1"></td> 
</tr>

一
二
三
四
五
六

请注意,给定JSON数组,应选中第一个复选框,但不应选中第二个复选框。

看起来您的selenium按照代码正常工作-只有一个元素class=“item1”

你可能想要的是

List<WebElement> item1s = driver.findElements(By.tagName("td"));
List item1s=driver.findElements(按.tagName(“td”));

如果这不能产生您想要的结果,请更清楚地解释什么是正确的预期结果。

根据您粘贴的html,这是正确的行为-只有一个元素具有
item1
类。您可以使用一些xpath查找所有相关元素,或者获取所有
td
标记并在处理之前对其进行过滤。
$scope.objects = [{item1: "one", item2: "two", item3: "three", itemSafe: "1"}, {item1: "four", item2: "five", item3: "six", itemSafe: "0"}];
$scope.loading = false;
<tr>
<td class="item1">one</td>
<td class="item2">two<td>
<td class="item3">three</td>
<td class="itemSafe"><input type="checkbox" disabled="true" ng-checked="object.itemSafe == 1"></td>
</tr>
<tr>
<td class="item1">four</td>
<td class="item2">five<td>
<td class="item3">six</td>
<td class="itemSafe"><input type="checkbox" disabled="true" ng-checked="object.itemSafe == 1"></td> 
</tr>
List<WebElement> item1s = driver.findElements(By.tagName("td"));