2015-05-06 2 views
1

Как написать единственный XPath для этогоКак написать единый XPath, если текст в две строки

<div class="col-lg-4 col-md-4 col-sm-4 profilesky"> <div class="career_icon"> 
      <span> Boost </span> <br/> 
      Your Profile </div> 

я в состоянии написать на две строки с помощью «содержит» метод.

.//*[contains(text(),'Boost')] 
.//*[contains(text(),'Your Profile')] 

Но я хочу в одной строке написать xpath для этого.

+0

Есть ли. .//[Contains(text(),'Boost')][contains(text(),'Your Profile ')] 'work? –

+0

s это работает .. с помощью элемента должен содержать –

+0

Ваш профиль следующий, «Boost Ваш профиль» –

ответ

0

Вы можете комбинировать несколько правил просто написав их один за другим, так как они относятся к одному элементу:

.//[contains(text(),'Boost')][contains(text(),'Your Profile')] 
+0

какие правила? Должен ли я проверять элементы, присутствует r нет? Элемент должен содержать xpath =. // * [@ class = 'career_icon'] Boost your carrer –

+0

Элемент должен содержать xpath =. // * [@ class = 'career_icon'] Повысьте свой профиль. Это дает ошибку, когда я даю xpath вроде этого. потому что «ваш профиль» находится на следующей строке –

+1

@ Karthika no, ошибка синтаксиса заключается в том, что вы не встречаете '*' между '//' и '[', но он все равно не будет соответствовать, потому что два условия 'содержит (text(), 'Boost') 'и' contains (text(), 'Your Profile') 'не могут оба удовлетворяться одним и тем же элементом. Используйте '.' вместо' text() ', как было предложено другим ответом. –

2

Вы можете попробовать так:

.//*[@class='career_icon' and contains(., 'Boost') and contains(., 'Your Profile')] 

Над проверкой XPATH, если есть элемент с атрибутом класса равен career_icon и содержит тексты Boost и Your Profile в корпусе элемента.

Обратите внимание, что только text() проверяет прямой дочерний текстовый узел. Для проверки всего текстового содержимого элемента просто используйте точку (.).

+1

Хуже того - 'contains (text(), 'xyz')' проверяет только прямой текстовый узел _first_jewatch и игнорирует все остальные. –

+0

Элемент должен содержать xpath =. // * [@ class = 'career_icon' и содержит (., 'Boost') и содержит (., 'Your Profile')] Увеличьте свой профиль –

+0

@ KarthikaItsYourSkills, который недопустим xpath, поэтому я не понимаю, что вы на самом деле имеете в виду, особенно трейлинг-часть «Boost Your Profile» – har07

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