需要X的Span> Class>标题

时间:2018-06-06 02:01:08

标签: java selenium selenium-webdriver xpath css-selectors

我是测试的新手,需要一些关于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类&gt; buttonText和Span class = title,只有不同的标题名称

2 个答案:

答案 0 :(得分:0)

您可以使用CSS选择器

span.title:nth-child(3)

编辑  您可以在Xpath下面使用

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

或使用链接文字

"An injury"

答案 1 :(得分:0)

根据 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();