2016-11-16 15 views
0

Мой код HTML состоит из нескольких div. Внутри каждого div представлен список якорных тегов. Мне нужно получить значения href и текстовые значения тегов привязки, которые находятся в sub-containerdiv. Я использую Selenium для получения HTML-кода веб-страницы.Как получить привязку тега href и текст тега привязки внутри div с помощью Selenium в Java

HTML код:

<body> 
    <div id="main-container"> 
     <a href="www.one.com">One</a> 
     <a href="www.two.com">Two</a> 
     <a href="www.three.com">Three</a> 

     <div id="sub-container"> 
      <a href="www.abc.com">Abc</a> 
      <a href="www.xyz.com">Xyz</a> 
      <a href="www.pqr.com">Pqr</a> 
     </div> 
    </div> 
</body> 

Java код:

List<WebElement> list = driver.findElements(By.xpath("//*[@href]")); 
for (WebElement element : list) { 
    String link = element.getAttribute("href"); 
    System.out.println(e.getTagName() + "=" + link); 
} 

Выход:

a=www.one.com 
a=www.two.com 
a=www.three.com 
a=www.abc.com 
a=www.xyz.com 
a=www.pqr.com 

Выход мне нужно:

a=www.abc.com , Abc 
a=www.xyz.com , Xyz 
a=www.pqr.com , Pqr 
+1

'System.out.println (e.getTagName() + "=" + ссылка + "" + e.getText());'; – vins

+0

Но мне нужно получить только от значений тега привязки субконтейнера div. – Karthik

+0

Я добавил xpath, чтобы выбрать только теги привязки подконтейнера к моему ответу –

ответ

0

Вы можете использовать element.getText(), чтобы получить текст ссылки.

Если вы хотите выбрать только ссылки в суб-контейнера, вы можете настроить XPATH:

//*[@id="sub-container"]/a 
1

Попробуйте это,

List<WebElement> list = driver.findElements(By.xpath("//div[@id='sub-container']/*[@href]")); 
     for (WebElement element : list) { 
      String link = element.getAttribute("href"); 
      System.out.println(element.getTagName() + "=" + link +", "+ element.getText()); 
     } 
+0

Но мне нужно получить только из значений тега привязки sub-container div. – Karthik

+0

@ Karthik, Uptaded 'Xpath', попробуйте. –

0

Довольно просто, попробуйте, как показано ниже:

`List<WebElement> list = driver.findElements(By.xpath("//div[@id='sub-container']/a")); 
    for (WebElement element : list) { 
     String link = element.getAttribute("href"); 
     String text = element.getText(); 
     System.out.println(e.getTagName() + "=" + link + ", " + text); 
    } 
+0

Но мне нужно получить только от значений тега привязки субконтейнера div. – Karthik

+0

отредактировал мой ответ выше, попробуйте изменить xpath в этом случае. –

0

Если идентификационный подконтейнер уникален, используйте только следующую строку:

driver.findElements(By.cssSelector("div#sub-container>a")); 

благодаря