2016-03-31 1 views
3

Я работаю над тестом на транспортир, в котором есть несколько заголовков одного и того же типа элементов, но отличается только от текста, который он показывает. Чтобы эти заголовки проверялись, если они отображаются, может быть использован фильтр xpath, например.Protractor - получить элемент sibling родительского элемента при фильтрации через дочерний элемент

element(by.xpath('//div/div/div[@id="headingOne"]/div/h4/a[contains(text(),"Sample")]')

Теперь есть еще одна проверка, что в отфильтрованной заголовке, должен быть флажок отображается и флажок элемент расположен в родственный элемент родителя заголовка в. Код выглядит следующим образом:

<div class="panel-heading" role="tab" id="headingOne"> 
<div class="inline"> 
    <h4 class="panel-title"> 
    <a>Sample</a> 
    </h4> 
</div> 
<div class="inline-right"> 
    <input type="checkbox" class=""> 
</div> 
</div> 

Теперь я имею вопросы о проверке, если следующий элемент, который является флажок существует. Я использовал following-sibling в xpath, но не использую его, поскольку он получает брата элемента <a>.

element(by.xpath('//div/div/div[@id="headingOne"]/div[contains(text(), "Sample")]/following-sibling::div'))

Обратите внимание, что другие элементы/заголовок с тем же элементом пути, именно поэтому я хотел, чтобы фильтровать через «Sample» текст, который внутри дел.

Спасибо!

ответ

1

Ваша попытка XPath может работать, если заменить text(), который ссылается на прямые дочерние текстовые узлы к ., который должен вернуть все содержимое текста узла контекста:

//div/div/div[@id="headingOne"]/div[contains(., "Sample")]/following-sibling::div 

Вы можете захотеть добавить /input[@type="checkbox"], а также после вышеупомянутого XPath, чтобы убедиться, что флажок установлен в следующем браке div.

Смежные вопросы