2011-08-01 4 views
0

가젯에 표시된 테이블에서 특정 행을 선택하는 방법을 알고 싶습니다.테이블에서 특정 행을 선택하는 방법은 무엇입니까?

use strict; 

use warnings; 
use Time::HiRes qw(sleep); 
use Test::WWW::Selenium; 
use Test::More "no_plan"; 
use Test::Exception; 

my $sel = Test::WWW::Selenium->new(host => "localhost", 
            port => 4444, 
            browser => "*chrome", 
            browser_url => "http://10.102.163.3/"); 

$sel->open_ok("/admin_ui/svm/html/main.html"); 
$sel->click_ok("//table[1]/tbody/tr/td[1]/div/table/tbody/tr/td[2]/img");  
$sel->click_ok("//input[\@value='Yes']"); 

사람이 코딩 위에 다음 줄을 설명해 주시겠습니까 : 자동화에

다음 코드는 무엇입니까?

$sel->click_ok("//table[1]/tbody/tr/td[1]/div/table/tbody/tr/td[2]/img"); 

또한 동일한 레코드를 얻고 있습니다. 행을 선택하고 삭제할 때마다.

누구든지 위의 스냅 샷과 같이 특정 값을 확인하는 방법을 설명하고 해당 행을 선택하여 삭제할 수 있습니까?

코드로 설명해주십시오.

미리 감사드립니다.

답변

3

누구든지 위의 코드에서 다음 줄을 설명해주십시오.

$sel $sel->click_ok("//table[1]/tbody/tr/td[1]/div/table/tbody/tr/td[2]/img");


->click_ok() 해당 객체의 메소드를 호출 click_ok :: 형 시험의 목적에 대한 참조 WWW :: 셀레늄.

이 방법의 인수는 locator

"//table[1]/tbody/tr/td[1]/div/table/tbody/tr/td[2]/img"가 행동 할 수있는 HTML 엘리먼트를 지정하는 xpath 식이다.

//은 xpath 표현식임을 나타냅니다.

table[1]는 (몇몇 연속적인 테이블이있을 수있다) 테이블의 선두로부터

...

td[2] 테이블 데이터 요소의 제 선두로부터 지정을 지정한다.

다른 부분은 분명해야합니다. 전반적으로 중첩 테이블의 두 번째 열에 이미지를 지정합니다.


(업데이트)

사람이 위의 스냅 샷에 을 같이 특정 값을 확인하는 방법을 설명하고 해당 행을 선택하십시오 수

을 선택하려면 값이 "Yes"value이라는 특성을 갖는 요소가 포함 된 tr을 사용하면

0을 사용할 수 있습니다.
//*[@value="Yes"]/ancestor::tr 

나는 XPath 식을 테스트하기 위해 다음 코드를 사용

 
#!/usr/bin/perl 
use strict; 
use warnings; 
use XML::LibXML; 

my $xml = <<END; 
<table> 
    <tr> 
    <td>Foo</td> 
    <td><input value="Yes" /></td> 
    </tr> 
    <tr> 
    <td>bar</td> 
    <td><a href="/woo.html">Woo</a></td> 
    </tr> 
</table> 
END 

my $xpath = '//*[@value="Yes"]/ancestor::tr'; 


my $parser = XML::LibXML->new; 
my $doc = $parser->parse_string($xml); 
my $n = 0; 
for my $node ($doc->findnodes($xpath)) { 
    print ++$n, ': ', $node->toString(), "\n"; 
} 
관련 문제