如何用量角器验证tagName的数量

时间:2018-04-22 08:41:51

标签: protractor

我是量角器的新手。 我在Java中用Selenium编写了一个测试,一切都很好。

但现在,我需要在量角器中做同样的测试,这让我发疯了!

我在页面中通过tagName检查元素的数量。

我的代码是这样的:

    // Click on a button
    element(by.id('e2e-idAutomate')).click();
    // Wait for the next page to be present
    var isPresent0 = EC.visibilityOf(element(by.tagName('ngx-carousel')));
    var isPresent1 = EC.visibilityOf(element(by.tagName('cmyardneo-action-button')));

    var condition = EC.and(isPresent0, isPresent1);
    browser.wait(condition, 5000);

    // Ok, here i want to chek the number of div by tagName

    // First try!
    expect<any>(element.all(by.tagName("div"))).toContain(40); 
    // Doesn't work... Fall in timeout!

    // Second try
    element.all(by.tagName("div")).then((liste) => {   //Same Problem, fall in timeout
        expect<any>(liste.length).toBe(40);   
    });

我如何通过element.all读取回调?

谢谢!

2 个答案:

答案 0 :(得分:0)

我们的问题,请参阅http://www.protractortest.org/#/timeouts

您的代码中存在一个问题:

// First try!
expect(element.all(by.tagName("div")).count()).toBe(40);
// element.all().count() is to get count of found elements

答案 1 :(得分:0)

确定,

经过另一次测试,我的问题不在于element.all 但关于页面更改......

我想做的是:

  1. 打开第一页
  2. 点击一个按钮,使à路由到a 第二页
  3. 查看第二页
  4. 我做过类似的事情:

    describe('test of application',  function ()  {
      beforeAll( () => {
        TR.closeTabs();
        browser.driver.manage().window().maximize();
         browser.get('/ardoise');
         browser.waitForAngularEnabled();
        browser.wait(EC.visibilityOf(element(by.id("e2e-idAutomate"))),5000);
    
      });
    
    
      it('Click on the button',  () => {   // I will go on the second page
        element(by.id('e2e-idAutomate')).click();
      });
    
      it('Check the second page',  () => {
        // brower.sleep(5000);
        var isPresent0 = EC.visibilityOf(element(by.tagName('ngx-carousel')));
        var isPresent1 = EC.visibilityOf(element(by.tagName('cmyardneo-action-button')));    
        var condition = EC.and(isPresent0, isPresent1);
        // Here i want to be sure the second page is loaded
        browser.wait(condition, 5000);
    
        // Next check....
      });
    });
    

    最后一个条件永远不行(我已经检查过,两个tagName都没关系!!!) 听起来像量角器没有看到路由发生......