Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Selenium webdriver计算ng repeat生成的选项卡集中的选项卡数_Javascript_Java_Angularjs_Selenium_Junit - Fatal编程技术网

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));
}