Angular应用,但在某些情况下量角器会找到Angular,但在其他情况下则找不到

时间:2018-08-22 21:34:08

标签: angularjs angular selenium jasmine protractor

我有一个适用于Chrome的量角器测试,当我向配置文件中添加多功能以覆盖Chrome和Firefox时,几次FIrefox尝试返回“在等待量角器与页面同步时出错:” angularJS可测试性和角度可测试性是不确定的。这可能是因为这是一个非角度的页面,或者是因为您的测试涉及客户端导航,这可能会干扰量角器的引导程序。”

我也在开发人员所说的Angular中的IS页面中看到此消息。

在我输入信息进行帐户创建时,对Angular页面进行了另一项测试,但是当该测试试图单击“服务条款”时,即使在使用browser.waitForAngularEnabled的情况下,它也会在Selenium Server启动后立即显示该消息。 (假);在代码中。在整个部分都被注释掉之后,它再次一致地通过。 这是该测试的代码,除去了其他一些尝试调试的东西:

describe('Profile Sign up with email', function() {  

it('should load profile signup page', function() {

browser.get('https://the_url_i_need.com');
});

it('should select Sign Up', function() {
element(by.css('label.ng-isolate-scope:nth-child(4) > span:nth-                       child(1)')).click();
});

it ('should make sure email address is the selected form of sign up',                         function() {
element(by.id('Radio1')).click();
});

browser.sleep(7000);
element(by.linkText('Terms of Service')).click();
});

现在,如果是“ element(by.linkText('服务条款'))。click();”被注释掉,测试很好;是否具有“ browser.waitForAngularEnabled(false);”或在看起来无关紧要之前漫长的睡眠。如果包含服务条款链接单击,则测试返回上面的错误。

既然这是在多个测试中发生的,我如何在这方面稳定它们?

1 个答案:

答案 0 :(得分:0)

发生错误是因为您不希望在it(...)函数中执行链接,而是想在加载URL之前执行对该链接的单击。

请尝试以下操作:

describe('Profile Sign up with email', function() {  

    ...

    it ('should click successfully on Terms of Service', function() {
        browser.sleep(7000);
        element(by.linkText('Terms of Service')).click();
    });
});