У меня есть этот HTML-код:

<span id="slotTotal">
    <span id="slotUsed">4</span>
          /16
</span>

Я хочу получить текст / 16, но когда я пытаюсь:

slotTot = driver.findElement(By.xpath("//*[@id='slotTotal']")).getText();

Я получаю это исключение: org.openqa.selenium.InvalidSelectorException: неверный селектор при попытке найти элемент

Как я могу это исправить? (Если я получу 4/16 тоже хорошо ...) заранее спасибо

0
Davide Melis 29 Окт 2019 в 01:32

3 ответа

Лучший ответ

Чтобы получить текст SlotUsed

String slotUsed= driver.findElement(By.xpath("//span[@id='slotUsed']")).gettext();
System.out.println("Value of used slot"+slotUsed);

Получить SubTotal (промежуточный итог является частью первого элемента span)

  String total=driver.findElement(By.xpath(".//span[@id='slotTotal']")).getText();
  System.out.println("Total"+total);
0
Dipak Bachhav 28 Окт 2019 в 23:15

Используйте xpath, используйте following-sibling:

//span[@id='slotUsed']/following-sibling::text()[1]

Как ниже:

String slotTot = driver.findElement(By.xpath("//span[@id='slotUsed']/following-sibling::text()[1]")).getText();
0
frianH 29 Окт 2019 в 03:52
String slotTot = driver.findElement(By.xpath("//span[normalize-space(@id='slotUsed']")).gettext();

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

0
frianH 1 Ноя 2019 в 12:57