Нужен Xpath для Span> Class> title - PullRequest
0 голосов
/ 06 июня 2018

Я новичок в тестировании и мне нужна помощь по Xpath для следующего кода:

snapshot of the elements

InnerHTML элемента:

<img class="icon" src="custom/icons/Injury.png">
<span class="buttonText"><span class="title">An injury</span></span>
<span class="title">An injury</span>

Я хочу нажать на «Травма», пробовал ниже xpath, но он не работает

driver.findElement(By.xpath(".//span[text()='An injury']")).click();

    <div id="pageLayout-eLeType-AFBWtFlqgByDxQjVusTPqEu0-bMs-AFBWtFlqgByDxQjVusTPqEuw" class="formCell button80Percent" style="width:48.0%;"> 
     <div class="dashboardLinksContainer">
      <div title="" class="dashboardLink linkAsButton">
       <a href="/QUASAR/new/Incident" onclick="userFavourites.recordVisit('Incident', 'anVtcENvbW1hbmQoJz9jb21tYW5kPW5ldyZicGlkPUFCTnlsR0dYTWpRMk9EazJNREkwTXpNNCZ0aXRsZT0iSW5jaWRlbnQiJyk7');jumpCommand('?command=new&amp;bpid=ABNylGGXMjQ2ODk2MDI0MzM4&amp;title=&quot;Incident&quot;');return false;"><img class="icon" src="custom/icons/Injury.png">
         <span class="buttonText">
           <span class="title">An injury</span>
         </span>
       </a>
      </div>
     </div>
   <div class="clear"></div>
 </div>

<div id="pageLayout-eLeType-AFBWtFlqgByDxQjVusTPqEu3-bMs-AFBWtFlqgByDxQjVusTPqEuw" class="formCell button80Percent" style="width:48.0%;"> 
  <div class="dashboardLinksContainer">
    <div title="" class="dashboardLink linkAsButton">
      <a href="/QUASAR/new/Incident" onclick="userFavourites.recordVisit('Incident', 'anVtcENvbW1hbmQoJz9jb21tYW5kPW5ldyZicGlkPUFCTnlsR0dYTWpRMk9EazJNREkwTXpNNCZ0aXRsZT0iSW5jaWRlbnQiJyk7');jumpCommand('?command=new&amp;bpid=ABNylGGXMjQ2ODk2MDI0MzM4&amp;title=&quot;Incident&quot;');return false;">
         <img class="icon" src="custom/icons/Damage.png">
      <span class="buttonText"><span class="title">Damage or loss to property or asset</span>
     </span>
    </a>
   </div>
  </div>
 <div class="clear"></div>
</div>

Вот код 2 html и около 8все больше и больше имеют один и тот же класс span> buttonText и Span class = title с разными именами заголовков

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

В соответствии с HTML , которым вы поделились, чтобы вызвать click() для элемента с текстом Травма , вы можете использовать любое из следующих решений:

  • cssSelector:

    driver.findElement(By.cssSelector("div.dashboardLink.linkAsButton > a[href='/QUASAR/new/Incident'] span.buttonText > span.title")).click();
    
  • xpath:

    driver.findElement(By.xpath("//div[@class='dashboardLink linkAsButton']/a[@href='/QUASAR/new/Incident']//span[@class='buttonText']/span[@class='title'][contains(.,'An injury')]")).click();
    
0 голосов
/ 06 июня 2018

Вы можете использовать селектор CSS

span.title:nth-child(3)

Редактировать Вы можете использовать ниже Xpath

".//*[@id='pageLayout-eLeType-AFBWtFlqgByDxQjVusTPqEu0-bMs-AFBWtFlqgByDxQjVusTPqEuw']/div[1]/div/a/span/span"

или Использовать текст ссылки

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