未找到Element时,量角器“It”规格失败

时间:2015-07-28 15:19:28

标签: node.js jasmine protractor

Here is the code: 


    it('Verify Backup details if present', function(){
    (profile_page.BPP_Contact_BackupDiv).isPresent().then(function(isVisible){
 if (isVisible) {
                expect((profile_page.BPP_Contact_Backup).getText()).toEqual("Backup:");
                expect((profile_page.BPP_Contact_BackupData).getText()).not.toBe(null);
                expect((profile_page.BPP_Contact_BackupData).getAttribute("href")).not.toBe(null);
            } else{
             console.log("BPP_Contact_BackupDiv Is not Displayed");
              }
        }, function(err) {
            console.log("In Error");
            console.log(err);
              });
    }); 

据我所知,这应该在“If”元素存在,而“Else”如果元素不存在。 我正在关注Page对象模态和 BPP_Contact_BackupDiv = element(by.css(我的元素标识符)); 当元素不存在时,这是失败的。 我收到此错误: -Error:超时 - 在超时规范中没有通过jasmine.Default_Timeout_Interval

调用异步回调

我也曾在Before Each中尝试过这个:

beforeEach(function (done) {
    jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
    setTimeout(function () {
        console.log('inside timeout');
        done();
    }, 500);
});

2 个答案:

答案 0 :(得分:0)

如果您改用browser.isElementPresent()该怎么办:

browser.isElementPresent(profile_page.BPP_Contact_BackupDiv).then(...)

答案 1 :(得分:0)

当我添加超出默认超时时间的时间时,问题似乎得到了解决:

it('Verify Backup details if present', function(){
    (profile_page.BPP_Contact_BackupDiv).isPresent().then(function(isVisible){
 if (isVisible) {
                expect((profile_page.BPP_Contact_Backup).getText()).toEqual("Backup:");
                expect((profile_page.BPP_Contact_BackupData).getText()).not.toBe(null);
                expect((profile_page.BPP_Contact_BackupData).getAttribute("href")).not.toBe(null);
            } else{
             console.log("BPP_Contact_BackupDiv Is not Displayed");
              }
        }, function(err) {
            console.log("In Error");
            console.log(err);
              });
    }60000);