Селен java как получить текст из элемента во вторых кавычках "" - PullRequest
0 голосов
/ 26 февраля 2020
<div class="_2b9p7-6Tcy_ja6zEhxML2e">
   <div class="flex _1VLiOJeD-kdBBLC9owCkQr">
    <span class="flex-1">”Total””:”</span>
    <span>
           “USD” 
           “2,175”
    </span>

Нужно получить текст inly во вторых кавычках "", в данном случае "2175", и я не знаю, как это сделать. И «USD», и «2175» происходят из API (они каждый раз разные, поэтому я не могу использовать driver.findElement (By.xpath («xpath и не« USD »)), я могу разделить результат и взять только необходимая часть, но я хотел бы знать, как взять значение только из вторых скобок для будущего (2 175). Я выполнил следующее на Intellij

System.out.println(driver.findElement(By.xpath("//div[@class = '_2b9p7-6Tcy_ja6zEhxML2e']//div//span/following-sibling:: span")).getText());

и получил, конечно, , полный текст - 2175 долларов США, но мне нужно 2175

Ответы [ 3 ]

0 голосов
/ 27 февраля 2020
driver.findElement(By.xpath("//div[@class = '_2b9p7-6Tcy_ja6zEhxML2e']//div//span/following-sibling:: span")).getText().substring(7, 11);

Подстроку можно использовать двумя способами:

Подстрока строки (int begIndex)

Подстрока строки (int beginIndex, intendIndex)

Надеюсь, это поможет.

0 голосов
/ 27 февраля 2020

Используйте split для возвращаемой строки, как показано ниже.

String[] amount = returnedText.split(" ");

сумма [1] должна быть вашим обязательным текстом.

0 голосов
/ 27 февраля 2020

Чтобы извлечь значение 2,175 , вам нужно заставить WebDriverWait , чтобы желаемый элемент был видимым , и вы можете использовать любое из следующих решений:

  • Использование xpath и , следующее :

    WebElement myElement = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[contains(., 'Total')]//following::span[1]")));
    System.out.println(((JavascriptExecutor)driver).executeScript('return arguments[0].lastChild.textContent;', myElement).toString());
    
  • Использование xpath и следующий брат :

    WebElement myElement = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[contains(., 'Total')]//following-sibling::span[1]")));
    System.out.println(((JavascriptExecutor)driver).executeScript('return arguments[0].lastChild.textContent;', myElement).toString());
    
...