量角器angularjs上指定了无效或非法的选择器错误

时间:2015-04-13 11:05:29

标签: javascript angularjs css-selectors protractor

所以我一直在使用量角器作为我的e2e测试angularjs组件,我一直在面对这个问题..

所以我有一个像这样的HTML标记

 <div class="item">
       <div class="item-grid">grid A</div>
       <div class="item-actions">
           <input type="image" class="item-action-image" title="info" src="images/icons/system-info.png">
           <input type="image" class="item-action-image" title="event" src="images/icons/system-event.png">
       </div>
    </div>
<div class="item">
       <div class="item-grid">grid B</div>
       <div class="item-actions">
           <input type="image" class="item-action-image" title="info" src="images/icons/system-info.png">
           <input type="image" class="item-action-image" title="event" src="images/icons/system-event.png">
       </div>
    </div>

假设如果点击上面的输入类型图像之一,将会出现一个信息模式来显示信息。

所以我想在量角器上创建一个场景来模拟那些..

场景将是

it("should've display grid information datas", function() {

        element(by.css(".item:eq(0) > .item-actions > input[title='info']")).click();

        browser.waitForAngular();

  });

上述代码的逻辑解释是量角器会选择第一个'.item'元素然后单击其中的'input[title="info"]'吗?

但我得到了这个错误

InvalidSelectorError: The given selector .item:eq(0) > .item-actions > input[title='info'] is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: An invalid or illegal selector was specified
因为我刚开始使用量角器,所以我一直被困住了..有没有人可以帮我解决这个问题?

1 个答案:

答案 0 :(得分:4)

您可以链接ElementFinders。例如:

$$('.item')
  .get(1)
  .$('input[title=info]')
  .click();

或者

element.all(by.css('.item'))
  .get(1)
  .element(by.css('input[title=info]')
  .click();

请注意$$('.abc')element.all(by.css('.abc'))相同,$('.abc')element(by.css('.abc'))相同