Проблема генерации правильного Xpath - PullRequest
2 голосов
/ 28 февраля 2020

Мое требование - когда я нажимаю на Facebook, он должен открыть домашнюю страницу Facebook. xpath, который я сгенерировал, - //*[@class='sub2']/tbody/tr[2]/td/a, но все же он дает мне NoSuchElementException. Помогите мне с генерацией правильного xPath.

<div> 
<center>
<table width="100%" class="sub2" style="float: none" border='8' 
cellspacing="8" cellpadding="8">
<tbody>
          <tr>
             <th>
               <center>Sample Program</center>
            </th>
         </tr>
         <tr>
         <td>
            <a href="https://facebook.com">
            <center> Facebook </center>
            </a>
         </td>
         </tr>
          <tr> </tr>
       </tbody>
  </table>
</center>

Ответы [ 4 ]

1 голос
/ 28 февраля 2020

Вы можете использовать XPath normalize-space () , как в //a[normalize-space()="Facebook"]

0 голосов
/ 28 февраля 2020

Чтобы найти элемент с текстом как Facebook , вы можете использовать одну из следующих Стратегий локатора :

  • Использование CssSelector :

    "table td>a[href*='facebook']>center"
    
  • Использование Xpath :

    "//table//td/a/center[normalize-space()='Facebook']"
    

Ссылка

Вы можете найти пару подробных обсуждений NoSuchElementException в:

0 голосов
/ 28 февраля 2020

Похоже, вы перепутали абсолютный xpath с относительным xpath. если вы начинаете с использования //, это означает, что вы используете относительный xpath. // означает, что он может искать элемент в любом месте на веб-странице. Так как вы пытаетесь найти тег с текстом «Facebook», вы можете попробовать //a[contains(text(),"Facebook")], что означает выбор тега привязки во всем DOM, который содержит текст «Facebook».

Или вы можете попробовать //*[contains(text(),"Facebook")], если вы совершенно уверены, что нет других элементов, содержащих текст «Facebook», поскольку приведенный выше xpath означает «выбрать все элементы в DOM, где он содержит текст« Facebook » ».

0 голосов
/ 28 февраля 2020

Вы можете получить элемент, используя xpath:

//a[@href='https://facebook.com']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...