InvalidSelectorError: результатом выражения xpath является [текст объекта]. Это должен быть элемент

У меня есть следующий код:

//html
<div>
   <span>Sort Order</span>
   <select id="sortOrderSelect">
      <option value=0>Descending</option>
      <option value=1>Ascending</option>
   </select>
</div>

//test
it('Check it has 2 options', function () {
   var selectCount = element.all(by.xpath('//*[@id="sortOrderSelect"]/child::node()'));
   expect(selectCount.count()).toBe(2);
});

Я получаю сообщение об ошибке ниже. Может кто-нибудь объяснить мне, что означает ошибка? И как я могу это решить?

InvalidSelectorError: результатом выражения xpath "//*[@id="sortOrderSelect"]/child::node()" является [текст объекта]. Это должен быть элемент.


person Community    schedule 13.09.2014    source источник
comment
Браузеры могут вставлять пустые текстовые узлы, когда между тегами есть новые строки.   -  person Pointy    schedule 13.09.2014


Ответы (1)


Этот XPath может возвращать текстовый узел или элемент:

//*[@id="sortOrderSelect"]/child::node()

Но кажется, что используемая вами библиотека поддерживает только выражения XPath, которые возвращают element :

//*[@id="sortOrderSelect"]/*
person har07    schedule 13.09.2014