我是测试的新手,需要一些关于Xpath的帮助才能获得以下代码:
元素的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&bpid=ABNylGGXMjQ2ODk2MDI0MzM4&title="Incident"');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&bpid=ABNylGGXMjQ2ODk2MDI0MzM4&title="Incident"');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,只有不同的标题名称
答案 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();