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"); } }
是否有可靠的方法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"); } }