Select 元素内的所有元素都带有量角器

Select all elements within an element with Protractor

是否有可靠的方法select 一个元素中的所有元素?假设我们有以下结构

...
<div class="outer">
     <div class="inner"></div>
     <div class="inner"></div>
</div>
...

selects outer 给我们的代码如下:

outer: { get: function () { return element(by.css(".outer")); } }

现在,如果我想select 所有 inner div,使用以下代码:

inner: { get: function () { return this.outer.element.all(by.css(".inner")); } }

我收到一条错误消息,指出 element.all 不是一个函数。有解决这个问题的好方法吗?

您尝试使用的想法实际上是正确的-它被称为"chaining"和was added in Protractor 0.17.0,只是您不需要那个中间element。替换:

this.outer.element.all(by.css(".inner"))

与:

this.outer.all(by.css(".inner"))

另请注意,element(by.css())element.all(by.css())$$$ 快捷方式 - 如果您应用它们:

outer: { get: function () { return $(".outer"); } }
inner: { get: function () { return this.outer.$$(".inner"); } }