【问题标题】:Protractor: get url of not angular page量角器:获取非角度页面的网址
【发布时间】:2015-04-29 19:24:25
【问题描述】:

我尝试测试的情况: 在 Angular 应用页面上按下按钮,将您重定向到其他网站(不是 Angular 应用)。

it('should go to 3d party  service when i click "auth" button' , function() {

    browser.driver.sleep(3000);
    element(by.id('files-services-icon')).click();
    element(by.id('box-vendor-menu-item')).click();
    browser.driver.sleep(2000);

    expect( browser.driver.getLocationAbsUrl()).toContain('https://app.box.com/api/oauth2/authorize');
});

但我明白了:

UnknownError:未知错误:未定义角度

如何实现?谢谢!

【问题讨论】:

    标签: javascript angularjs testing protractor end-to-end


    【解决方案1】:

    你需要做两件事

    • 在尝试读取第 3 方页面的 URL 之前设置 browser.ignoreSynchronization = true;,因此浏览器不会等待(因此需要)Angular 承诺在页面中解析(然后将其设置为 false);
    • 使用 browser.getCurrentUrl() 而不是 browser.getLocationAbsUrl(),因为前者只是使用普通的 webdriver 方法读取 URL,而不是通过 Angular 访问它。

    以下应该有效:

    it('should go to 3d party  service when i click "auth" button' , function() {    
      element(by.id('files-services-icon')).click();
      element(by.id('box-vendor-menu-item')).click();
      browser.ignoreSynchronization = true;
      expect(browser.getCurrentUrl()).toContain('https://app.box.com/api/oauth2/authorize');
      browser.ignoreSynchronization = false;
    });
    

    【讨论】:

      【解决方案2】:

      您需要调整ignoreSynchronization flag - 在点击链接之前将其设置为true,然后在afterEach() 中设置回false

      afterEach(function () {
          browser.ignoreSynchronization = false;
      });
      
      it('should go to 3d party  service when i click "auth" button' , function() {    
          element(by.id('files-services-icon')).click();
      
          browser.ignoreSynchronization = true;
          element(by.id('box-vendor-menu-item')).click();
      
          expect(browser.getLocationAbsUrl()).toContain('https://app.box.com/api/oauth2/authorize');
      });
      

      另见:

      您可能还需要等待 URL 更改,example here

      【讨论】:

      • 谢谢你的解释,但这也会返回同样的错误UnknownError: unknown error: angular is not defined
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多