2016-08-02 108 views
1

我想點擊第二級菜單選項,將擴大到第三級。一些菜單選項沒有被點擊。我在所有部分之前添加了browser.driver.manage()。window().setSize(1280,1024)。下面元素不可點擊的鉻驅動器量角器角2

是我的代碼:

it('Should expect clicking the second level menu option will expand the third level',() => { 
    element.all((by.css('div.panel.panel-default'))).click().then(() => { 
    var groupList = element.all((by.css('.list-group-header.sub-menu-header.active-element'))); 
    // expect(groupList.get(1).getAttribute('class')).toMatch('active-element'); 
    expect(groupList.count()).toEqual(1); 
    }); 
}); 
+0

我想通過「by.css('div.panel.panel-default')」這個選擇器逐個單擊每個元素...如果有人能幫助我如何使用每個函數元素全部以及如何在這裏單擊每個元素。 – user3444776

回答

0

當我們處理的多級菜單,這是很好的使用protractor.ExpectedConditions檢查元素的可視性和可點擊狀態。

而在你的情況下,用量角器「每()」方法,可以點擊下面的代碼每個element.Hope會幫助你。

Code Snippet: 

var EC = protractor.ExpectedConditions; 
var timeout=5000; 

it('Should expect clicking the second level menu option will expand the 
    third level',() => { 
    element.all((by.css('div.panel.panel-default'))).each(function(ele,index) 
    { 
    //check whether each element becomes visibile or not 
    browser.wait(EC.visibilityOf(ele), timeout).thenCatch(function() { 
    assert.fail('element is not visibile'); 
        }); 
    //check whether each element is clickable or not 
    browser.wait(EC.elementToBeClickable(ele), timeout).thenCatch(function 
    () { 
     assert.fail('element is not click able'); 
      }); 
    //then click each element 
    ele.click().then(function(){ 
    var groupList = element.all((by.css('.list-group-header.sub-menu- 
           header.active-element'))); 
    // expect(groupList.get(1).getAttribute('class')).toMatch('active- 
     element'); 
    expect(groupList.count()).toEqual(1); 
    }); 
    }); 
}); 
+0

感謝您的回覆@Suresh – user3444776

+0

您的問題是否已解決? –

+0

是的,我用一種不同的方式來解決它,但是,這是非常有用的,我將來不得不使用它。再次感謝:) – user3444776