<div> <label1>Hulk</label1> <label2>Ironman</label2> Thor </div>
Как получить только текст Thor без использования Содержит в xpath?
Если я попытаюсь получить текст div, это даст мне все 3 (Халк, Железный человек, Тор), но мне нужен только Тор.
Чтобы извлечь текст Thor без использования содержимого в xpath, вы можете использовать любое из следующих решений:
xpath
String myText = driver.findElement(By.xpath("//div[not(@label)]")).getText();
cssSelector:
cssSelector
String myText = driver.findElement(By.cssSelector("div:not(label)")).getText();
Использование JavaScriptExecutor
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.
//div[not(@label)]
div:not(label)
Не могли бы вы попробовать следующий путь?
/div/text()