Как получить href из родительского класса? - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь получить все ссылки href из родительского класса, который выглядит следующим образом:

<div class="parentClass">
   <article class="className">
      <a href="link1">
      </a>
   </article>
   <article class="className">
      <a href="link2">
      </a>
   </article>
</div>

Как правильно найти элемент href?

Ответы [ 3 ]

3 голосов
/ 25 октября 2019

Используйте ниже xpath

//div[@class='parentClass']//*[@href]

Используйте код как показано ниже:

  List<WebElement> list=driver.findElements(By.xpath("//div[@class='parentClass']//*[@href]"));

   for(WebElement e : list){
       String link = e.getAttribute("href");
       System.out.println(e.getTagName() + "=" + link);
   }
1 голос
/ 26 октября 2019

Если вы используете ниже xpath, вы найдете все элементы href от родительского

//div[@class="parentClass"]//article[*]//a[*] 
0 голосов
/ 25 октября 2019

Самый простой способ сделать это - использовать селектор CSS, div.parentClass a. Я бы посоветовал вам также добавить ожидание, поскольку загрузка страницы может занять несколько секунд, в зависимости от того, сколько данных она содержит. После этого вам просто нужно найти все соответствующие элементы, пройтись по каждому из них и получить атрибут href, а затем распечатать их (или все, что вы хотите с ними сделать). Код с этими предложениями приведен ниже.

List<WebElement> links = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("div.parentClass a")));
for (WebElement webElement : links)
{
    System.out.println(webElement.getAttribute("href"));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...