等待Protractor同步的超时 - 发生在服务器上,但不发生在localhost上

时间:2014-12-10 19:40:27

标签: angularjs protractor automated-tests

我正在为一个新的Angular webapp编写一套Protractor测试。我的团队要求我针对他们的测试服务器实例运行我的测试。我已经设置了配置文件和基本测试规范,但是只要我点击主页面并执行一个简单的expect()语句,我就会在11秒后等待Protractor与页面同步。 “

这是我的测试:

describe('the home page', function() {
  it('should display the correct user name', function(){
    expect(element(by.binding('user.name')).getText()).toContain(browser.params.login.user);
  });
});

我克隆了开发团队的git repo,将其设置在我的localhost上,更改了我的baseUrl并在本地运行了我的Protractor测试。顺利过关。

在与开发团队进行一些对话之后,我确定它不是$ http或$ timeout问题。我们使用这两种服务,但不是重复使用(我不认为它们是“轮询”)。它们都不应该发生多次,并且所有超时都是半秒钟。

还有什么可能导致量角器超时?我希望它在我的本地主机上失败,所以我可以去调整代码,直到我找到导致问题的原因,但事实并非如此。

1 个答案:

答案 0 :(得分:1)

我发现了解决方案:检查控制台错误。

事实证明,我们的$ http请求之一没有回来,因为我的量角器测试是通过https访问页面,但我们的一个xhtml端点位于非安全位置。这导致了一个非常有用的控制台错误,我还没有看到,因为它只在使用WebDriver访问该站点时发生。

错误文本:" [url]上的页面是通过HTTPS加载的,但请求了一个不安全的XMLHttpRequest端点。此请求已被阻止;内容必须通过HTTPS提供。"

我修改了我的baseUrl以通过常规http访问该网站,现在一切正常。