2014-01-28 2 views
0

셀레늄을 처음으로 사용하고 있습니다. 비슷한 xpath가있는 페이지에 유사한 링크가 있습니다 (링크 1에서 30까지). 나는 그들 모두가 페이지에 존재하는지 확인해야한다. (나는 셀레늄이 각 요소에 대해 "element 1 is present"와 같은 것을 인쇄하기를 원한다.) 그것들 모두는 클릭 가능하다 (새로운 페이지가 열릴 것이다). 지금까지 나는 모든 링크를 하나 하나 클릭하고 자신의 제목을 인쇄하려면이 코드를 가지고 :Selenium webdriver에서 링크를 확인하고 클릭하는 방법 Java

또한
driver.get("http://anysite.com"); 
    String part1=".//*[@id='footer']/div/div[1]/div[2]/ul/li["; 
    String part2="]/a"; 
    for (int i=1;i<=30;i++){ 
    String text = driver.findElement(By.xpath(part1+i+part2)).getText(); 
    System.out.println(text); 
    driver.findElement(By.xpath(part1+i+part2)).click(); 
    System.out.println(driver.getTitle()); 
    driver.get("http://anysite.com"); 

나는 30 개 링크가있는 경우 나 복제 할 필요 (별도 개별 링크의 존재를 확인하기 위해이 코드를 이 코드는 30 번) :

if(driver.findElements(By.xpath(".//*[@id='footer']/div/div[1]/div[2]/ul/li[1]/a")).size() != 0){ 
     System.out.println("Element Link 1 is Present"); 
     }else{ 
     System.out.println("Element Link 1 is Absent"); 
     } 

지금까지 2 가지 테스트 케이스가 있는데,이 두 가지를 하나의 멋진 조각으로 결합하는 방법이 있습니까? 감사합니다.

문자열 1이 같은 XPath를 복용에서
+1

몇 번 이상이 내용을 읽었으며 사용자가 묻는 내용을 이해하지 못합니다. 예를 들어 복제 코드의 3 가지 인스턴스를 보여줄 수 있습니까? –

답변

0

: 그것이 있어야하는 동안

String part1=".//*[@id='footer']/div/div[1]/div[2]/ul/li["; 

가 "."

String part1="//*[@id='footer']/div/div[1]/div[2]/ul/li["; 

당신은 점을 제거해야 당신의 xpath에서.

관련 문제