2017-11-29 14 views
0

자바에서 셀렌에 대해 조금 질문이 있습니다. 내 프로그램에서 은 내가 /CMS/상점/편집?와 href가 많다 ID = XXXhref (셀렌)에서 ID를 얻는 방법

<a href="/cms/shops/edit?id=736" class="btn btn-sm btn-primary">Edit</a> 
<a href="/cms/shops/edit?id=321" class="btn btn-sm btn-primary">Edit</a> 
<a href="/cms/shops/edit?id=123" class="btn btn-sm btn-primary">Edit</a> 

어떻게 셀레늄 (자바) 만 XXX (ID) 값을 얻을 예를 들어 배열에 추가 할 수 있습니다 ??

답변

1

코드 Snipppet :

-ArrayList 구현 :

 List<WebElement> linkList = driver.findElements(By.cssSelector("a[class^='btn btn-sm']")); 
     List<Integer> idListFromLink = new ArrayList<Integer>(); 
     for(WebElement link : linkList){ 
      String [] temp = link.getAttribute("href").split("="); 
      int id = Integer.valueOf(temp[temp.length - 1]); 
      idListFromLink.add(id); 
     } 

-Array 구현 :

  List<WebElement> linkList = driver.findElements(By.cssSelector("a[class^='btn btn-sm']")); 
      int listSize = linkList.size(); 
      int [] idListFromLink = new int[listSize]; 
      for(int i = 0; i < listSize; i++){ 
       String [] temp = linkList.get(i).getAttribute("href").split("="); //split the href value using delimeter '=' 
       int id = Integer.valueOf(temp[temp.length - 1]); //get the last item 
       idListFromLink[i] = id; 
      } 
+0

안녕하세요, 는 대답과 솔루션을 주셔서 감사합니다,하지만 난 인쇄 ID 값을하려고 할 때 (idListFromLink.get (0)) 콘솔 예외가 있습니다 : 스레드 "main"의 예외 java.lang.IndexOutOfBoundsException : 인덱스 : 0, 크기 : 0 – Mdr92

+0

실수를했습니다. 이제 업데이트 된 코드를 살펴보고 알려주십시오. –

+0

이 동일한 예외 또는 idListFromLink.length 또는 idListFromLink.size()를 사용할 때 = 0 – Mdr92

0

당으로하면 HTML 공유 D 인쇄 만 XXX (ID) 값은 다음과 같은 코드 블록 사용할 수 있습니다

List<WebElement> linkList = driver.findElements(By.cssSelector("a.btn.btn-sm.btn-primary[href^='/cms/shops/edit?id']")); 
List<Integer> idListFromLink = new ArrayList<Integer>(); 
for(WebElement link : linkList){ 
    String my_href = link.getAttribute("href"); 
    String[] parts = my_href.split("="); 
    idListFromLink.add(Integer.parseInt(parts[1])); 
} 
System.out.println(idListFromLink); 
+0

안녕하세요, 귀하의 솔루션을 시도했지만 예외가 : "main"스레드에서 예외 org.openqa.selenium.InvalidSelectorException : 주어진 CSS 선택기 표현식 "a.btn.btn-sm.btn-primary [href^=/cms/상점/편집? id =] "올바르지 않습니다. SyntaxError : 'a.btn.btn-sm.btn-primary [href^=/cms/shops/edit? id =]'은 (는) 올바른 선택자가 아닙니다. – Mdr92

+0

은 빠졌습니다. 따옴표, 업데이트 된 답변을 시도하고 상태를 알려주십시오 – DebanjanB