elementfinder承诺是否已在声明中得到解决?

时间:2014-11-11 16:26:00

标签: protractor pageobjects

我知道ElementFinder是承诺,但如果我们在Page对象的开头定义ElementFinder,我不确定承诺的行为方式。看一个例子:

var EventHeader = function (context) {
    this.eventName = this.moduleRoot.element(by.css('.event-name'));
    this.venueName = this.moduleRoot.element(by.css('.venue-name'));
    this.eventTime = this.moduleRoot.element(by.css('.event-time'));
    this.eventDate = this.moduleRoot.element(by.css('.event-date'));
    this.marketName = this.moduleRoot.element(by.css('.market-name'));
};

当初始化页面对象时,量角器会尝试解决所有的承诺吗?

我想另一种选择是在开头定义定位器,然后创建返回ElementFinder本身的方法。

1 个答案:

答案 0 :(得分:4)

在您调用函数之前,元素查找程序将不会执行。当您拨打click()sendKyes()等内容时,您必须确保元素在页面上。