想转换下面的行
rows.element(by.xpath(".//*[@ng-model='strategy.COMMENT']")).clear()
进入页面对象,如
rows.dataCatcherPage.strategyAUMValue.clear()
但是我收到了错误
“失败:无法读取属性'strategyAUMValue'未定义”
这是Page对象
strategyAUMValue: {
get: function () {
return element(by.xpath(".//*[@ng-model='strategy.AUM_VALUE']"));
}
},
答案 0 :(得分:1)
这个怎么样:
页
.
规范
module.exports = new function () {
var elements : {
strategyAUMValue : element(by.xpath(".//*[@ng-model='strategy.AUM_VALUE']"))
};
this.clear = {
strategyAUMValue : elements.strategyAUMValue.clear()
};
this.getText = {
strategyAUMValue : elements.strategyAUMValue.getText()
};
};
这使您的页面元素可以是私有的(分隔您的框架图层),但可以让您完全访问测试所需的所有操作。您可以通过向元素部分添加任何其他元素来扩展它,然后添加到元素测试所需的任何this.clear / getText / isDisplayed类型函数。
一些可扩展性:
var dataCacherPage = require('./dataCacher.page.js');
describe('Data cacher', function(){
it('can clear the strategy aum value', function(){
dataCacherPage.clear.strategyAUMValue();
expect(dataCacherPage.clear.strategyAUMValue()).toEqual('', 'Strategy AUM Value should have been an empty string');
});
});
module.exports = new function () {
var elements : {
strategyAUMValue : element(by.xpath(".//*[@ng-model='strategy.AUM_VALUE']")),
// Get an element where multiple exist
coolElement : $$('[name="coolElement"]')
};
this.clear = {
strategyAUMValue : elements.strategyAUMValue.clear()
};
this.getText = {
strategyAUMValue : elements.strategyAUMValue.getText(),
coolElement : elements.coolElement.getText()
};
};