【问题标题】:Protractor - adding a count function returns ""both angularJS testability and angular testability are undefined..." error量角器 - 添加计数函数返回““angularJS 可测试性和角度可测试性都未定义......”错误
【发布时间】:2019-05-27 20:46:17
【问题描述】:

我正在尝试为应用程序上的按钮点击创建循环。为此,我需要计算存在按钮的表中的行数。所以我创建了这个脚本:

require('..\\waitAbsent.js');
require("../node_modules/jasmine-expect/index.js");
var EC = protractor.ExpectedConditions;

describe('Demo_Test For count', function() {


beforeAll(function () {
    browser.driver.manage().window().maximize();
    browser.get(globalVariables.loginMain);
    globalVariables.Email_Input_box.sendKeys(globalVariables.Demo_User);
    globalVariables.Password_Input_Box.sendKeys(globalVariables.Demo_PWD);
    globalVariables.Submit_Button.click();
    browser.wait(EC.invisibilityOf(globalVariables.Submit_Button), 25000, 'submit button is not disappearing yet');
});


it('Dashboard Title Validation', function () {

    expect(globalVariables.ESY_DB_Label.isDisplayed());
    expect(globalVariables.ESY_DB_Label.getText()).toEqual('HomePage')

});

//count block


 globalVariables.tableData_Dashboard.all(by.tagName("tr")).count().then(function (Count) {

    console.log('\n the count of the rows are ' + Count + '\n');

});
//count block end


it("1+1", function () {

    let i = 1;
    let j = i + i;
    expect(j).toBe(2);

})

});

当我运行这个脚本时,所有的测试都失败了,即使是我刚刚添加 1+1 的第二个测试!日志如下:

  Student Enrollment Page Content Validation 1+1
  Message:
    Error: Error while waiting for Protractor to sync with the page: "both angularJS testability and angular testability are undefined.  This could be either because this is a non-angular page or because your test involves client-side
 navigation, which can interfere with Protractor's bootstrapping.  See https://github.com/angular/protractor/issues/2643 for details"
  Stack:
    Error: Error while waiting for Protractor to sync with the page: "both angularJS testability and angular testability are undefined.  This could be either because this is a non-angular page or because your test involves client-side
 navigation, which can interfere with Protractor's bootstrapping.  See https://github.com/angular/protractor/issues/2643 for details"
        at runWaitForAngularScript.then (C:\ESY_Desktop_V_2\node_modules\protractor\built\browser.js:463:23)
        at ManagedPromise.invokeCallback_ (C:\ESY_Desktop_V_2\node_modules\selenium-webdriver\lib\promise.js:1376:14)
        at TaskQueue.execute_ (C:\ESY_Desktop_V_2\node_modules\selenium-webdriver\lib\promise.js:3084:14)
        at TaskQueue.executeNext_ (C:\ESY_Desktop_V_2\node_modules\selenium-webdriver\lib\promise.js:3067:27)
        at asyncRun (C:\ESY_Desktop_V_2\node_modules\selenium-webdriver\lib\promise.js:2927:27)
        at C:\ESY_Desktop_V_2\node_modules\selenium-webdriver\lib\promise.js:668:7
        at process._tickCallback (internal/process/next_tick.js:68:7)

但如果我注释掉 count 块,测试运行顺利。这个错误的原因是什么?我该如何解决?

【问题讨论】:

    标签: javascript protractor


    【解决方案1】:

    未包含在 it 块中的代码将被提升到顶部并在任何 it 块开始之前运行,这意味着您的测试届时可能不会处于预期状态。尝试再次编写代码,但将 count 块包含在 it 中。

    require('..\\waitAbsent.js');
    require("../node_modules/jasmine-expect/index.js");
    var EC = protractor.ExpectedConditions;
    
    describe('Demo_Test For count', function () {  
        beforeAll(function () {
            browser.driver.manage().window().maximize();
            browser.get(globalVariables.loginMain);
            globalVariables.Email_Input_box.sendKeys(globalVariables.Demo_User);
            globalVariables.Password_Input_Box.sendKeys(globalVariables.Demo_PWD);
            globalVariables.Submit_Button.click();
            browser.wait(EC.invisibilityOf(globalVariables.Submit_Button), 25000, 'submit button is not disappearing yet');
        });
    
    
        it('Dashboard Title Validation', function () {
    
            expect(globalVariables.ESY_DB_Label.isDisplayed());
            expect(globalVariables.ESY_DB_Label.getText()).toEqual('HomePage')
    
        });
    
        it("1+1", function () {
           //count block
           globalVariables.tableData_Dashboard.all(by.tagName("tr")).count().then(function (Count) {
               console.log('\n the count of the rows are ' + Count + '\n');
           });
           //count block end
    
            let i = 1;
            let j = i + i;
            expect(j).toBe(2);
    
        })
    });
    

    【讨论】:

      猜你喜欢
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多