Как извлечь конкретный текст из тега без использования contains () и xpath? - PullRequest
0 голосов
/ 02 июля 2018
<div>
    <label1>Hulk</label1>
    <label2>Ironman</label2>
Thor
</div>

Как получить только текст Thor без использования Содержит в xpath?

Если я попытаюсь получить текст div, это даст мне все 3 (Халк, Железный человек, Тор), но мне нужен только Тор.

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Чтобы извлечь текст Thor без использования содержимого в xpath, вы можете использовать любое из следующих решений:

  • xpath

    String myText = driver.findElement(By.xpath("//div[not(@label)]")).getText();
    
  • cssSelector:

    String myText = driver.findElement(By.cssSelector("div:not(label)")).getText();
    
  • Использование JavaScriptExecutor

    WebElement myElement = driver.findElement(By.xpath("//div[@attribute='value']")); //replace the pseudo attribute with actual attribute
    String myText = ((JavascriptExecutor)driver).executeScript('return arguments[0].lastChild.textContent;', myElement).toString();
    

Примечание : убедитесь, что xpath как //div[not(@label)] и cssSelector как div:not(label) напоминает уникальный элемент в HTML DOM.

0 голосов
/ 02 июля 2018

Не могли бы вы попробовать следующий путь?

/div/text()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...