我有一个自动化测试,我已经切换了大多数属性的变量,这对我来说非常棒,除非我需要链接一些东西。以下是我希望它看起来像的例子:
var test = module.exports = {
outerElement: element(by.cssContainingText('some.div' 'A name'),
innerElement: $('something.else'),
clickOnaName: function () {
this.outerElement.this.innerElement.click();
},
但是我必须使用这段代码,因为链接不能像我使用它那样工作:
var outerElement = element(by.cssContainingText('some.div'
'A name');
var innerElement = $('something.else');
var test = module.exports = {
clickOnaName: function() {
outerElement.innerElement.click();
},
我有没有办法做链,或者我应该把这些元素留作变量
答案 0 :(得分:3)
请告诉我这是否有帮助!
您可以使用.element(el.locator())
扩展元素。您可以一次使用多个选择器。你也可以点击元素数组。
请记住,这种量角器选择器的链接与css空间子选择器相同,而不是>选择。
即$('.parent').$('.child')
将选择与css文件.parent .child
中相同的元素,获取所有子项,而不仅仅是直接子项。
module.exports = function(){
this.parent = $('.parent');
this.child = $('.child');
this.childOfParent = parent.element(child.locator());
this.directParentChild = $('.parent').$('.child');
this.parentArray = $$('.parents');
this.child = $('.child');
this.children = parentArray.get(2).element(child.locator());
}
添加点击等应该非常简单,例如page.childOfParent.click
。