2017-12-17 12 views
0

남자 Selenium Automation을 배우고 있습니다.Selenium Java를 사용하여 다른 ul 태그 안에 텍스트를 인쇄하는 방법

나는 아래와 같이 웹 사이트를 디자인했습니다.

내 HTML 코드 :

<!DOCTYPE html> 
<html> 
<head><title>Shop</title></head> 
<body> 
<ul> 
    <li><a href="www.rendertofruitsection.com">Fruits</a> 
     <ul> 
      <li><a href="www.addbananatocart.com">» Banana</a></li> 
      <li><a href="www.addappletocart.com">» Apple</a></li> 
      <!--List goes on--> 
     </ul> 
    </li> 
    <li><a href="www.redertovegsection">Vegetable</a> 
     <ul> 
       <li><a href="www.addcapcicumtocart">» Capsicum</a></li> 
       <li><a href="www.addtomatotocart.com">» Tomato</a></li> 
       <li><a href="www.addoniontocart">» Onion</a></li> 
       <!--List goes on--> 
     </ul> 
    </li> 
    <li><a herf="www.nonveglink.com">Non Veg Section</a></li> 
    <!--List goes on--> 
</ul> 
</body> 
</html> 

처음에 나는 자바 셀레늄을 사용하여 <a> 태그 안에 제시되는 모든 텍스트를 나열하는 계획을 세웠다.

그래서이 코드를 작성했습니다.

내 자바 코드 : 내가 가진 필요한 무엇

public class shop 
{ 
    public static void main(String[] args) 
    { 
     WebDriver driver= new ChromeDriver(); 
     driver.get("www.myshopping.com"); 
     List<WebElement> text= driver.findElements(By.xpath("//a")); 
     for(int i=0;i<text.size();i++) 
     { 
      System.out.println(i+". "+text.get(i).getText()); 
     } 
    } 
} 

출력 :

Output what I got:      | Output What I need: 
1. Fruits        | 1. Fruits 
2.          | 2. Banana 
3.          | 3. Apple 
4. Vegetable       | 4. Vegetable 
5.          | 5. Capsicum 
6.          | 6. Tomato 
7.          | 7. Onion 
8. Non Veg Section      | 8. Non Veg Section 

얘들 아 그냥 셀레늄 자바를 사용하여 내부 <ul><li> 태그의 텍스트를 얻는 방법, 약간의 힌트를 말한다.

나는 이것을 몇 가지 시도했지만, 나는 여기에 갇혔다. 도움을 요청하십시오.

public class shop 
{ 
    public static void main(String[] args) 
    { 
     WebDriver driver= new ChromeDriver(); 
     driver.get("www.myshopping.com"); 
     List<WebElement> text= driver.findElements(By.xpath("//li[ul]/a")); 
     for(int i=0;i<text.size();i++) 
     { 
      System.out.println(i+". "+text.get(i).getText()); 
      WebDriverWait wait = new WebDriverWait(i, 10); 
      List<WebElement> innerText = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath(".//following-sibling::ul//a[text()]"))); 
      for(int j=0; j<text.size(); j++) 
      { 
       System.out.println(i+". "+j+". "+text.get(j).getText()); 
      } 
     } 
    } 
} 
+0

이 코드는 나에게 당신이 찾고있는 모든 텍스트를 주었다 링크를 따라

public static void main(String[] args) { WebDriver driver= new FirefoxDriver(); driver.get("file:///C:/Users/abdul%20awal/Desktop/test.html"); List<WebElement> text= driver.findElements(By.cssSelector("ul ul a")); for(int i=0;i<text.size();i++) { System.out.println(i+". "+text.get(i).getText()); } } 

CSS 셀렉터 참고로 : 그것은 단지 로케이터 변화입니다. 또한 0에서 7까지 숫자를주었습니다. *** 정확한 *** 코드와 출력을 제공하십시오. 그렇지 않으면 우리는 당신을 도울 수 없습니다. – Guy

+0

'getAttribute ("innerText")'내 경우에 적용됩니다. 모두 고마워요 – Srini

답변

0

하는 <a> 내부에 제시되는 모든 텍스트를 나열하려면 :

는 항목 유형에 대한 외부 루프를 적용하고 동적으로 생성 된 것으로 보인다 항목에 대한 내부 루프를 추가하는 당신에게

+0

'getAttribute ("innerText")'제 경우에 효과가 있습니다. – Srini

0
WebElement x = driver.findElement(By.xpath("xpathOfTheElement")); 
String text = x.getAttribute("innerText"); 
System.out.println(text); 
+0

'getAttribute ("innerText") 내 경우에 작동 – Srini

0

시도를 감사 태그를 사용하면 다음 코드 블록을 시도 할 수 있습니다.

public class shop 
{ 
    public static void main(String[] args) 
    { 
    WebDriver driver= new ChromeDriver(); 
    driver.get("www.myshopping.com"); 
    List<WebElement> atags = driver.findElements(By.tagName("a")); 
    for(WebElement atag:atags) 
     System.out.println("Text is : " + atag.getAttribute("innerHTML")); 
    } 
} 
+1

'getAttribute ("innerText")'내 경우에 적용됩니다. 그러나 당신의 기다림.이 초심자에게는 무의미합니다. 고마워요. – Srini