2012-07-24 5 views
0

검색 결과에 올바른 제목, 요약 및 링크가 표시되는지 테스트하려고합니다. 예를 들어 아래 예제에서 적어도 하나의 레코드에 제목 "베타 제목", "베타에 대한 요약"텍스트 요약 및 "링크"라는 링크가 포함되어 있는지 확인하고자합니다.Selenium IDE를 사용하여 특정 텍스트를 포함하는 클래스 그룹을 찾는 방법

<ul> 
    <li class="results"> 
    <h2 class="title">Title for Alpha</h2> 
    <div class="summary">Summary for Alpha...</li> 
    <div class="link"><a href="http://www.example.com">Link</a> 
</li> 
<li class="results"> 
    <h2 class="title">Title for Beta</h2> 
    <div class="summary">Summary for Beta...</li> 
    <div class="link"><a href="http://www.example.com">Link</a> 
</li> 
</ul> 
+0

이 잘 형성된 XML 문서 아니므로 "알파 용 타이틀"을 포함하는 모든 요소를 ​​선택한다. –

+0

@Dimitre Novatchev : XML 문서가 아닙니다. 그것은 HTML입니다. Selenium IDE를 사용하면 XPath에서 HTML을 테스트 할 수 있습니다. – Ken

답변

0

여러 가지 방법으로 선택할 수 있습니다. 하나는 CSS 클래스를 사용하고 있습니다.

HtmlUnitDriver driver = new HtmlUnitDriver(); 

driver.get("..."); 

List<WebElement> titles = driver.findElements(By.className("title")); 
List<WebElement> summarys = driver.findElements(By.className("summary")); 
List<WebElement> links = driver.findElements(By.className("link")); 

for (WebElement webElement : titles) { 
    String innerText = webElement.getText(); 

    // do your test.... 
} 

페이지 구조가 복잡하면 XPath를 사용해도됩니다.

셀레늄을 처음 사용하는 사람은 PageFactory 패턴을 살펴 봐야합니다. 이것은 훨씬 깨끗한 코드를 작성하는 좋은 방법입니다.

InnerText으로 요소를 선택하는 특별한 방법으로 XPath를 사용할 수 있습니다. 이 XPath는 InnerText

List<WebElement> titles = driver.findElements(By.xpath("//*[contains(text(), 'Title for Alpha')]")); 
관련 문제