2015-04-01 45 views
20

我正在测量使用量角器和茉莉花的网站。我想知道当前的网址以验证测试。我怎样才能使用量角器得到当前的网址?

我已经试过

function waitForUrlToChangeTo(urlRegex) { 
    var currentUrl; 

    return browser.getCurrentUrl().then(function storeCurrentUrl(url) { 
      currentUrl = url; 
     } 
    ).then(function waitForUrlToChangeTo() { 
      return browser.wait(function waitForUrlToChangeTo() { 
       return browser.getCurrentUrl().then(function compareCurrentUrl(url) { 
        return urlRegex.test(url); 
       }); 
      }); 
     } 
    ); 
} 

,我以这种方式

it('should log', function() { 
    //element(by.model('user.username')).sendKeys('asd'); 
    //element(by.model('user.password')).sendKeys('asd'); 
    element(by.linkText('Acceder')).click(); 
    waitForUrlToChangeTo("http://localhost:9000/#/solicitudes"); 
}); 

回答

31

这里使用该功能是基于Expected Conditions的作者提供的示例工作代码:

var urlChanged = function(url) { 
    return function() { 
    return browser.getCurrentUrl().then(function(actualUrl) { 
     return url != actualUrl; 
    }); 
    }; 
}; 

用法:

element(by.linkText('Acceder')).click(); 
browser.wait(urlChanged("http://localhost:9000/#/solicitudes"), 5000); 
31

Alecxe你的回答非常有帮助。

但不能你刚才代码:

expect(browser.getCurrentUrl()).toEqual('whateverbrowseryouarexpectingtobein'); 

如果失败,那么你知道你会错了地方。

+1

我觉得目的是要等到URL匹配一定值时,不只是在给定时间点获得的价值。 – 2016-04-13 16:20:38