Selenium WebDriver - получить <span>текст - PullRequest
0 голосов
/ 19 декабря 2018

Мне нужно получить значение цены $ 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 голосов
/ 20 декабря 2018

Поскольку элемент находится внутри тега <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();
    

Обновление

Поскольку результаты были нестабильными, вы можете вызвать WebDriverWait для visibilityOfElementLocated , и вы можете использовать любое из следующих решений:

  • 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");
    
0 голосов
/ 20 декабря 2018

Ура!Я нашел решение

driver.findElement(By.xpath("//span[@class='calculateur-resultats-total' and contains(text(),'$')]")).getText();
0 голосов
/ 19 декабря 2018

Попробуйте это,

Ниже я упомянул два 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()
...