我正在使用Selenium进行自动化。我正在自动化的网站具有以下html元素。从Selenium我想抓住" 0400320908"和" 0400 962887"。
我尝试了以下代码: -
WebElement mobElement = driver.findElement(By.xpath("//i[contains(text(),mobile)]"));
但是webdriver只抓取第一个号码,即0400320908而不是另一个号码。你能告诉我我在做什么错误。
此致 拜达里
<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>
答案 0 :(得分:0)
使用findElements
查找多个元素。在这种情况下,我也会使用 CSS选择器,因为它更简洁和可读:
driver.findElements(By.cssSelector("i.service-identifier"));
如果需要使用Mobile
文本来定位元素,请使用以下XPath表达式:
driver.findElements(By.xpath("//span[@class = 'service-title' and . = 'Mobile']/following-sibling::i"));