Javascript 使用Selenium webdriver计算ng repeat生成的选项卡集中的选项卡数
我正在测试一个网页,它在使用Javascript 使用Selenium webdriver计算ng repeat生成的选项卡集中的选项卡数,javascript,java,angularjs,selenium,junit,Javascript,Java,Angularjs,Selenium,Junit,我正在测试一个网页,它在使用ng repeat生成的tabset中有许多选项卡 我的选项卡生成如下: <tabset id="tabset"> <tab ng-repeat="server in servers"> <tab-heading>{{server.name}}</tab-heading> <div>{{server.body}}</div> </tab>
ng repeat
生成的tabset
中有许多选项卡
我的选项卡生成如下:
<tabset id="tabset">
<tab ng-repeat="server in servers">
<tab-heading>{{server.name}}</tab-heading>
<div>{{server.body}}</div>
</tab>
</tabset>
但是失败了,因为大小为0,而我知道有4个选项卡可见。啊,Angular已经在代码结构中找到了自己的方法 它已经转变为:
分为
和
进入
因此,以下方面取得了成功:
@Test
public void shouldDisplayAtLeastOneServer() {
Assert.assertThat(webDriver.findElement(By.id("tabset"))
.findElement(By.tagName("ul"))
.findElements(By.tagName("li"))
.size(), Matchers.greaterThan(0));
}
标签在
或
标签内吗?我看到你有一个标签,所以大小需要是一个(索引[0])嗨,标签在
内,我希望我在那里有正确的一端。Leon Barkan,使用ng repeat
意味着将有多个选项卡,我知道这一点,因为我自己加载时可以在网页上看到它们。
不必是直接的父项,它可以是一个祖先。可能元素不在一个框架内,因为在查找tabset
元素时不会抛出NoTouchElementException?很高兴您找到了自己的答案。请别忘了在可能的时候回来接受这个答案。谢谢行,我明天可以接受。希望这能帮助其他人避免像我一样陷入困境
@Test
public void shouldDisplayAtLeastOneServer() {
Assert.assertThat(webDriver.findElement(By.id("tabset"))
.findElement(By.tagName("ul"))
.findElements(By.tagName("li"))
.size(), Matchers.greaterThan(0));
}