Как извлечь текст из родственных текстовых узлов сильного тега с помощью Selenium и Java - PullRequest
0 голосов
/ 12 июля 2020

Существует 52 следующих объекта страницы, каждый из которых имеет тег Strong, содержащий строку с именем «Gideon». Как я могу получить их все методом findElements? введите описание изображения здесь

1 Ответ

0 голосов
/ 12 июля 2020

«кавычки» находятся внутри текстовых узлов . Таким образом, чтобы получить текст, вы должны вызвать WebDriverWait для visibility_of_all_elements_located(), и вы можете использовать любую из следующих стратегий локатора :

  • xpath:

    List<WebElement> parentElements = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//strong[text()='Gideon']//..")));
    for (WebElement parentElement:parentElements)
        System.out.println(((JavascriptExecutor)driver).executeScript("return arguments[0].lastChild.textContent;", parentElement).toString());
    
  • xpath с предшествующим :

    List<WebElement> parentElements = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//strong[text()='Gideon']//preceding::p[1]")));
    for (WebElement parentElement:parentElements)
        System.out.println(((JavascriptExecutor)driver).executeScript("return arguments[0].lastChild.textContent;", parentElement).toString());
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...