我必须创建一个方法来执行某些操作,而某些元素在页面上不可见。当它显示我结束测试。
this.waitHolidayInCalendarFunc = function () {
return browser.wait(anyHolidayInCalendar.isDisplayed()
.then(nextWeekButton.click()));
};
但是有错误
“失败:fn不是函数”
我尝试过这样的方法:
this.IsPresentHoliday = function () {
browser.wait(function () {
return holiday.isPresent();
}, defaultDelay);
};"
在测试中我添加'while'就像这样
var clickNextWeek = new holidaycalendar.NavigateOnCalendarView();
while (clickNextWeek .IsPresentHoliday() == false ) clickNextWeek.GoNextWeek();
但是方法isPresent()返回true(但页面上没有元素)并且测试通过了!请帮忙!
答案 0 :(得分:2)
使用ExpectedConditions
和browser.wait
使脚本等待某些条件。请尝试以下代码。
var EC = protractor.ExpectedConditions;
var waitTime = 5000; //5 secs
var elementToBeVisible = element(by.id("some-id"));
browser.wait(EC.visibilityOf(elementToBeVisible),waitTime);