Selenium WebDriver-获取<span>文本

时间:2018-12-19 15:53:16

标签: java selenium xpath css-selectors webdriver

我需要从以下位置获取价格为$ 726.35:

<span id="paiement-resultats"class="calculateur-resultats-total" style="" xpath="1">$726.35</span>

但它不起作用:

driver.findElement(By.id("paiement-resultats")).getText()

如何获得该值?

浏览器中的屏幕截图:

Screenshot from the browser

3 个答案:

答案 0 :(得分:0)

尝试一下,

下面我提到了两个Xpath,如果无法使用,请尝试使用

//div[@id='resultats']//following::span[@id='paiement-resultats']
//div[@id='resultats']//following::span[@class='calculateur-resultats-total']

driver.findElement(By.xpath("//h2[@class='resultats']//following::span[@id='paiement-resultats']")).getText()

答案 1 :(得分:0)

由于元素位于<span>标记内,因此要提取文本 $ 726.35 ,您可以使用以下任一解决方案:

  • cssSelector

    driver.findElement(By.cssSelector("span.calculateur-resultats-total#paiement-resultats")).getText();
    
  • xpath

    driver.findElement(By.xpath("//span[@class='calculateur-resultats-total' and @id='paiement-resultats']")).getText();
    

更新

由于结果不稳定,您可以为 visibilityOfElementLocated 引入 WebDriverWait ,并且可以使用以下任一解决方案:

  • cssSelector

    String myText = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("table[aria-label='User']"))).getAttribute("innerHTML");
    
  • xpath

    String myText = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//table[contains(@style,'vertbar')]"))).getAttribute("innerHTML");
    

答案 2 :(得分:-1)

干杯! 我找到了解决方法

driver.findElement(By.xpath("//span[@class='calculateur-resultats-total' and contains(text(),'$')]")).getText();