简单的量角器测试失败并出现意外结果

时间:2016-04-17 18:26:22

标签: angularjs selenium-webdriver protractor angularjs-e2e e2e-testing

我正在尝试再次运行量角器测试url http://na5.keylo.co/,目标是:

  1. _model字段填入数据' Oracle Corporation'
  2. click搜索按钮
  3. 期望搜索结果为508
  4. 规范代码:

    describe('keylocations home page', function () {
    it('should search condos', function () {
        browser.get('http://na5.keylo.co/');
    
        element(by.model('_model')).sendKeys("Oracle Corporation");
        element(by.css('.search__block.search__submit')).click();
    
    
        var condos = element.all(by.repeater('condo in scrollResults'));
        expect(condos.count()).toEqual(508);
    
        // this also can be used to get desired test completed
        //expect(element(by.css('.bar__number'))).toEqual("508 condos found");
    
    });
    });
    

    问题:

    我总是在0结果中得到by.repeater,而当我手动使用浏览器时,我看到了确切的结果,它很简单,但我犯了错误,不知道是什么?

    修改

    使用@Gunderson建议的conf.js:

    //this works and sows success
    browser.driver.wait(browser.driver.isElementPresent(by.css('.bar__number')));
    
    
    //this fails with following error log
    expect(element(by.css('.bar__number')).getText()).toEqual("508 condos found");
    
    
    //this also fails with following error log
    browser.driver.wait(expect(element(by.css('.bar__number')).getText()).toEqual("508 condos found"));
    
      

    http://localhost:4444/wd/hub [启动器]使用selenium服务器   运行1个WebDriver规范实例已启动警告 - 更多   比定位器bymodel(" _model")找到的一个元素 - 第一个   结果将被使用

         

    keylocations主页       ?应该搜索公寓          - 失败:等待量角器与页面同步时出错:" [ng:test]没有找到元素参数的注入器   getTestability \ nhttp://errors.angularjs.org/1.5.2/ng/test"

         

    ˚F

               
        
    • 失败*      
    •   
         

    1)keylocations主页应搜索公寓      - 失败:等待量角器与页面同步时出错:" [ng:test]没有找到元素参数的注入器   getTestability \ nhttp://errors.angularjs.org/1.5.2/ng/test"

         

    在14秒内执行1个规格中的1个(1个失败)。

         

    失败:1)keylocations主页应搜索公寓消息:       失败:等待量角器与页面同步时出错:" [ng:test]找不到元素参数的注入器   getTestability \ nhttp://errors.angularjs.org/1.5.2/ng/test"堆:       错误:失败:等待量角器与页面同步时出错:" [ng:test]没有找到元素参数的注入器   getTestability \ nhttp://errors.angularjs.org/1.5.2/ng/te st"           在C:\ Users \ Hair \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ jasminewd2 \ index.js:101:16           在Promise.invokeCallback_(C:\ Users \ Hair \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ promise.js:1329:14)           在TaskQueue.execute_(C:\ Users \ Hair \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ promise.js:2790:14)           在TaskQueue.executeNext_(C:\ Users \ Hair \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ promise.js:2773:21)

         

    1个规格,1个失败在14.407秒完成[启动器] 0个实例   WebDriver仍在运行[launcher] chrome#01失败1测试   [发射器]整体:1个失败的规格[发射器]进程退出   错误代码1

1 个答案:

答案 0 :(得分:1)

好像你的本地设置有问题。我复制了你的代码并且它通过了(很好,因为数字错了,但它检索了公寓#)。

describe('keylocations home page', function () {
  it('should search condos', function () {
    browser.get('http://na5.keylo.co/');

    element(by.model('_model')).sendKeys("Oracle Corporation");
    element(by.css('.search__block.search__submit')).click();


    var condos = element.all(by.repeater('condo in scrollResults'));
    expect(condos.count()).toEqual(508);

    // this also can be used to get desired test completed
    //expect(element(by.css('.bar__number'))).toEqual("508 condos found");
  });
});

返回:console

似乎你在当地有错误。我将链接粘贴到我的配置文件https://gist.github.com/anonymous/7a682f45999c0377013e409fe6dd4e24 - 除此之外,我建议你更新Protractor,webDriver和Jasmine。

我在Protractor 2.5.1和Jasmine 2.3.4上。