量角器AngularJS等到元素显示并执行一些操作

时间:2016-10-23 10:27:32

标签: javascript angularjs protractor

我必须创建一个方法来执行某些操作,而某些元素在页面上不可见。当它显示我结束测试。

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(但页面上没有元素)并且测试通过了!请帮忙!

1 个答案:

答案 0 :(得分:2)

使用ExpectedConditionsbrowser.wait使脚本等待某些条件。请尝试以下代码。

var EC = protractor.ExpectedConditions;
var waitTime = 5000; //5 secs
var elementToBeVisible = element(by.id("some-id"));
browser.wait(EC.visibilityOf(elementToBeVisible),waitTime);