2010-05-05 10 views
1

xpath를 사용하여 dom-objects를 얻고 루프를 반복하여 원하는 텍스트가 있는지 확인하십시오. Selenium IDE 또는 rc에서 가능합니까? 펄 내 선호하는 언어셀레늄 테스팅

의 XPath가 될 것 XPath는 = // TBODY의 [에 @ 클래스 = '테이블 데이터'] 같은/TR/TD/DIV [클래스 = '테이블 항목'@]

입니다

이것은 테이블의 모든 행 항목을 반환하지만 지정된 텍스트 문자열을 포함하는 경우 각 div를 확인해야합니다. Selenium에서도 가능합니까?

안부

+1

WWW :: Selenium은 명백한 부분입니다 (또는 Test :: WWW :: Selenium). 누군가가 명시 적으로 "xpath와 일치하는 여러 div가 모두 지정된 텍스트를 포함하고 있는지"테스트 할 수 있습니까? 또는 적어도 "복수"또는 "지정된 텍스트 포함"부분을 수행하는 방법에 대한 힌트를 보여 주시겠습니까? – ysth

답변

1

WWW::Selenium 모듈은 당신의 필요에 적합합니다. 다른 질문에 대한 older answer에서

는 :

당신은해야합니다 ... XPath는 요소, 테이블 ID를, 텍스트 (! 정규식 일치) 및 URL을 통해 요소에 대한 액세스를 지원합니다 Selenium Remote Control 을 다운로드하고 모듈이 작동하려면 배경에 을 실행하십시오.

페이지로드 시간을 예측할 수없는 경우 좋은 옵션이 아닐 수 있습니다.

0

HTML의 XPath 검색은 a number of modules to choose from이지만 모두 Test::XPath이 가장 좋습니다.

use Test::XPath; 

    my $html = ...get it however... 

    # Create a Test::XPath object from your HTML 
    my $tx = Test::XPath->new(xml => $html, is_html => 1); 

    # Test for the existence of your table rows. 
    $tx->ok(q{//tbody[@class='table-data']/tr/td/div[@class='table-item']}, sub { 
     # Run more tests on each node returned by the above xpath expression 
     $_->like('./text()', qr/specified text/, "row contains the right text"); 
    }, 'found table rows'); 

내 XPath가 다소 어려울 수 있지만 아이디어를 얻을 수 있습니다.