2016-04-04 17 views
0

Ich mache Automatisierung mit Selenium. Die Website, die ich automatisiere, hat die folgenden HTML-Elemente. Von Selen will ich die "0400320908" und "0400 962887" schnappen.Selen - Webelement Auswahl

habe ich versucht, Code unten: -

WebElement mobElement = driver.findElement(By.xpath("//i[contains(text(),mobile)]")); 

aber die WebDriver nur die erste Zahl das heißt 0400320908, aber nicht die andere Zahl ist grabbing. Könnten Sie mir bitte mitteilen, welchen Fehler ich mache?

Regards, Badari

<ul class="no-margin no-padding"> 
<li class="mobile-row landing-module-row"> 
<a class="with-two-usage" href="plan-details-mobile?accountId=2743a04d777524d37b55e1423264b4b9b6b88455&serviceId=6a7ec405ff27c9712d06ef978a828a6b5300ad70"> 
<span class="service-title">Mobile</span> 
<i class="service-identifier">0400 320 908</i> 
</a> 
<div class="r-side"> 
</li> 


<script src="/myaccount/static-content/js/unica-domain.js?cb=1.1602.0.1-SNAPSHOT.4.5.8" type="text/javascript"> 
<li class="mobile-row landing-module-row"> 
<a class="with-two-usage" href="plan-details-mobile?accountId=2743a04d777524d37b55e1423264b4b9b6b88455&serviceId=25fd1d9b2ae9b04de2a2ccd63e407d957bede4c9"> 
<span class="service-title">Mobile</span> 
<i class="service-identifier">0400 962 887</i> 
</a> 
<div class="r-side"> 
</li> 

Antwort

0

Verwenden findElements mehrere Elemente zu lokalisieren. Ich würde auch einen CSS-Selektor in diesem Fall verwenden, da es mehr prägnant und lesbar ist:

driver.findElements(By.cssSelector("i.service-identifier")); 

Wenn Sie den Mobile Text verwenden müssen Elemente zu finden, verwenden Sie den folgenden XPath-Ausdruck:

driver.findElements(By.xpath("//span[@class = 'service-title' and . = 'Mobile']/following-sibling::i")); 
Verwandte Themen