无法从<p>标记</p>获取值

时间:2014-01-07 12:04:39

标签: selenium xpath

我应该得到p标签之间的值。 以下是我需要获取值

的代码
<div id="ved-list-totals">
<div id="ved-sidebar-totals" class="clearfix margin-top-10" style="height: 100px;">
<div id="ved-sidebar-totals" class="clearfix margin-top-10" style="height: 100px; background-color: transparent;">
<div class="pull-right margin-left-20 margin-right-10 align-right">
<p class="no-margin">0</p>
<p class="no-margin" style="background-color: transparent;">5.97</p>
<p class="no-margin">0.00</p>
<p class="no-margin">4.95</p>
<p class="no-margin bold dark-text">10.92</p>
</div>


<div class="pull-right margin-left-20 align-right">
<p class="no-margin">Estimated Points</p>
<p class="no-margin">Subtotal</p>
<p class="no-margin">Tax</p>
<p class="no-margin">Service Fee</p>
<p class="no-margin bold dark-text">Estimated Total</p>
</div>

我尝试了以下方法:

String tot = driver.findElement(By.xpath("html/body/div[4]/table/tbody/tr/td[2]/div/div[1]/div[2]/div/div/div/div[2]/div/div/div[1]/p[2]")).getText();

String axd = driver.findElement(By.xpath("html/body/div[4]/table/tbody/tr/td[2]/div/div[1]/div[2]/div/div/div/div[2]/div/div/div[1]/p[3]")).getText();

String tot = driver.findElement(By.xpath("//div[@id='ecart-sidebar-totals']/div/p[4]")).getText();

String axd = driver.findElement(By.xpath("//div[@id='ecart-sidebar-totals']/div/p[3]")).getText();

我收到的错误是:

  

org.openqa.selenium.NoSuchElementException:无法找到元素:{“method”:“xpath”,“selector”:“// div [@ id ='ecart-sidebar-totals'] / div / p [ 4]“}

有两个具有相同id(<div id="ved-sidebar-totals">)的元素,如果此id被指责为此错误,或者是否有任何遗漏的内容。

3 个答案:

答案 0 :(得分:0)

使用xpath //div[@id='ved-list-totals']//p[1]。这应该使用getText()方法返回第一个p标记值。

答案 1 :(得分:0)

尝试使用Css选择器

driver.findElement(By.cssSelector("div[class='pull-right margin-left-20 margin-right-10 align-right'] p:nth-child(4)")); 

答案 2 :(得分:0)

疯狂猜测..

//div[@id='ecart-sidebar-totals']/div[@id='ved-list-totals']/p[1]