量角器使用变量链接元素?

mo*_*ons 10 protractor

我试图尽可能保持我在Protractor中的pageObjects,但是在选择子元素时遇到了一些行为.

这有效:

var parent = element(by.css('.parent-class'));

parent.element(by.css('.child-class')).getText();
Run Code Online (Sandbox Code Playgroud)

但是,这不是:

var parent = element(by.css('.parent-class'));
var child = element(by.css('.child-class'));

parent.child.getText();
Run Code Online (Sandbox Code Playgroud)

有没有办法做第二个例子?我宁愿不让我的pageObjects上的方法遍布元素定位器,但似乎这是找到子元素的唯一方法吗?

在实际应用中,我有一长串卡片,我可以从中过滤到我正在寻找的卡片.然后我想用卡的子元素做事.

Nat*_*son 14

您可以使用该locator()函数获取子元素的定位器,并使用它来查找父元素的子元素.这类似于您在注释中提供的解决方案,但允许您将页面对象上的所有属性定义为Web元素,而不是元素和定位器的混合:

var parent = element(by.css('.parent-class'));
var child = element(by.css('.child-class'));

parent.element(child.locator()).getText();
Run Code Online (Sandbox Code Playgroud)