2017-10-12 12 views
0

나는 다음과 같은 HTML 코드가있는 내 셀레늄 테스트를 실행하기 위해 노력하고 있습니다WebElement.findElement 방법은 WebDriver 범위에서 요소를 찾는

<html> 
 

 
<head></head> 
 

 
<body> 
 
    <table id="Original"> 
 
    <tr> 
 
     <td>Original-11</td> 
 
     <td>Original-12</td> 
 
     <td>Original-13</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Original-21</td> 
 
     <td>Original-22</td> 
 
     <td>Original-23</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Original-31</td> 
 
     <td>Original-32</td> 
 
     <td>Original-33</td> 
 
    </tr> 
 
    </table> 
 

 
    <br/><br/> 
 

 
    <table id="Duplicate"> 
 
    <tr> 
 
     <td>Duplicate-11</td> 
 
     <td>Duplicate-12</td> 
 
     <td>Duplicate-13</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Duplicate-21</td> 
 
     <td>Duplicate-22</td> 
 
     <td>Duplicate-23</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Duplicate-31</td> 
 
     <td>Duplicate-32</td> 
 
     <td>Duplicate-33</td> 
 
    </tr> 
 
    </table> 
 
</body> 
 

 
</html>

셀레늄 자바 코드는 다음과 같습니다 : 다음과 같이

public static void main(String[] args) throws Exception 
    { 
     System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/src/test/drivers/chromedriver.exe"); 

     WebDriver drv = new ChromeDriver(); 
     drv.get("C:/Users/MYUserName/git/er_test/SeleniumTestHtml.html"); 

     WebElement tableElement = drv.findElement(By.id("Duplicate")); 
     WebElement rowElement = tableElement.findElement(By.xpath("//tr[2]")); 
     WebElement cellElement = rowElement.findElement(By.xpath("//td[2]")); 
     System.out.println(rowElement.getText()); 
     System.out.println(cellElement.getText()); 

     drv.close(); 
     drv.quit(); 

    } 

나는 결과를 기대하고있다 :
중복-21 Duplica TE-22 중복-23
중복은-22

하지만이 결과를 얻고있다 :
이 원래-21 원래-22 원래-23
원래-12

내가 여기 뭔가 잘못하고 있습니까?

답변

4

귀하의 문제는 //은 최상위 루트 요소에서 다시 검색하도록합니다. 당신은 현재 요소 내부를 검색 할 경우, 당신은 해명을

WebElement rowElement = tableElement.findElement(By.xpath(".//tr[2]")); 
+0

감사를 사용해야 좋은

WebElement rowElement = driver.findElement(By.xpath("//tr[2]")); 

WebElement rowElement = tableElement.findElement(By.xpath("//tr[2]")); 

을 의미

입니다. 그게 효과가 있었어. – Animesh