量角器:将url保存为字符串以便以后重定向

时间:2014-11-13 12:19:23

标签: angularjs protractor

如何将当前URL保存为字符串?我想在其他地方导航,然后导航回保存的URL。我不想为此使用browser.navigate().back()

当我举例时

var urlString;

browser.getCurrentUrl().then(function(url) {
    urlString = url;
});

....redirecting...navigating...


browser.waitForAngular();
browser.get(urlString); // get back to beginning URL

它失败了,因为承诺尚未填满且urlStringundefined

在不破坏测试流程的情况下是否有可能做到这一点?

2 个答案:

答案 0 :(得分:1)

试试这个:

  1. 将测试放入描述中。
  2. 在每个之前添加一个以保存网址。
  3. 运行测试,应该解析该值。
  4. 
    
    describe('my test', function() {
      var urlString;
    
      beforeEach(function() {
        browser.getCurrentUrl().then(function(url) {
          urlString = url;
        });
      });
    
      it('should go and come back', function() {
        // Here the value has already been resolved.
        ....redirecting...navigating...
    
        browser.waitForAngular();
        browser.get(urlString); // get back to beginning URL
      });
    })
    
    
    

    ...或者您可以将所有测试都放在then的{​​{1}}

答案 1 :(得分:0)

您可以导航到Promise本身中的新URL:

browser.getCurrentUrl().then(function(cUrl){
   browser.get(cUrl.replace('a','b'));
})