Найдите элемент в селене, используя текст внутри тега h2 - PullRequest
0 голосов
/ 09 января 2019

Я не могу выбрать следующий элемент h2, используя текст в селене -

   

<h2>
   <span id="presentations:0:categoryHeaderForm:j_idt95"><a id="presentations:0:categoryHeaderForm:j_idt95:j_idt97" href="#" class="ui-commandlink ui-widget chekChartLink" aria-label="Technical Information" onclick="PrimeFaces.ab({source:'presentations:0:categoryHeaderForm:j_idt95:j_idt97',process:'presentations:0:categoryHeaderForm:j_idt95:j_idt97',update:'chekChartForm',oncomplete:function(xhr,status,args){chekChartWidget.show();}});return false;" title="Technical Information">
   <span class="icon-border icon-large icon-wrench"></span></a>
   </span>Water Pump
   <div id="presentations:0:categoryHeaderForm:j_idt101" class="ui-datalist ui-widget service-tsbs">
  <div id="presentations:0:categoryHeaderForm:j_idt101_content" class="ui-datalist-content ui-widget-content"></div>
   </div>
   <script id="presentations:0:categoryHeaderForm:j_idt101_s" type="text/javascript">PrimeFaces.cw('DataList','widget_presentations_0_categoryHeaderForm_j_idt101',{id:'presentations:0:categoryHeaderForm:j_idt101'});</script>
</h2>

Я пытался:

driver.findElement(By.xpath("//h2[contains(text(), 'Water Pump')]"));

но получите:

org.openqa.selenium.NoSuchElementException: невозможно найти элемент с xpath

Есть предложения, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Вы должны либо указать индекс дочернего текстового узла, который должен содержать требуемую подстроку, например //h2[contains(text()[2], 'Water Pump')] или попробуйте выбрать заголовок с помощью текста, который является частью его строкового представления :

//h2[contains(., 'Water Pump')]
0 голосов
/ 09 января 2019

Вы можете использовать подстановочный знак * и following-sibling:: в xpath следующим образом:

driver.findElement(By.xpath("//h2[contains(text()[2], 'Water Pump')]/following-sibling::*"));

Вот пример в этой ссылке .

Надеюсь, это поможет вам!

приписка

кредит @Anderson за XPath ... см. В комментариях

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...