【发布时间】:2017-03-06 09:57:27
【问题描述】:
我在一个页面上有 4 个相同的容器框。我把它们都放在一个数组中。现在每个容器盒都包含一些相同的元素。我想从第一个容器中获取第二个元素。 以下是我用来获取容器的内容,它工作正常:
var pageContent = element(by.css('[class="main-content"]'));
expect(pageContent.all(by.css('.modularBoxContent')).count()).tobe(4);
现在,如果我想获取类为 labelText 内部模块化框容器的所有元素的计数,我可以使用以下方法来做到这一点:
expect(pageContent.all(by.css('.modularBoxContent')).all(by.css('[class="labelText"]')).count()).tobe(10);
但这给了我所有 4 个容器中的 labelText。我想仅在第一个容器中获取 labelText 的计数,或者在第一个容器中获取第一个 labelText 的文本。我尝试了下面的代码,但它不起作用并收到错误消息
TypeError: this.pageContent.get 不是函数
expect(pageContent.get(0).all(by.css('.modularBoxContent')).all(by.css('[class="labelText"]')).count()).tobe(3);
我也在下面尝试过,但效果不佳。 为此也得到与上述相同的错误。
expect(pageContent.all(by.css('.modularBoxContent')).get(1).all(by.css('[class="labelText"]')).get(0).getText()).tobe(3);
有人可以建议正确的用法吗?
【问题讨论】:
-
你能详细说明“它不工作”是什么意思吗?有错误吗?您是否在检索错误的元素?等
-
@Gunderson 在我的帖子中添加了错误消息。我收到错误说明 get 不是函数。此外,我认为这不是检索元素的正确方法,所以我不确定。
-
你不能在单个元素上调用
.get(),只能在元素数组上调用。如果是var pageContent = element.all(by.css('[class="main-content"]'));,它会起作用。那么 4 个主要容器是否都具有main-content类? -
是的。没错。它们都在 main-content 下
标签: selenium protractor