2
my $V1 = $sel->get_text("//body[\@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]/div/div/table/tbody/tr/td/div/div");
print($V1 . "\n");
위의 명령을 실행할 때 오류없이 v1을 인쇄 할 수있었습니다.변수에 저장된 xpath를 전달하는 방법은 무엇입니까?
내 목표는 약 20 개 정도의 값을 인쇄하는 것입니다. 그러나 각 변수에 대한 XPath는 조각에 따라 수행하는 대체 DIV [] 요소입니다.하지만 말. div
요소에만 (즉, table
을 preeceeding div
요소가 div[2],
로 대체해야하며, div[2]
모든 반복에 div[3]
교체해야합니다에 따라 다릅니다
잘못된 XPath는.
my $xpath = q(//body[\@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]/div/div/table/tbody/tr/td/div/div);
for my $i (0,2)
{
my @nodes = split qr'/', $xpath;
$nodes[16] .= "[$i]" unless 0 == $i;
#say join '/', @nodes; }
my @somenames = join('/',@nodes);
#print "\n";
#print @somenames ;
foreach my $val (@somenames) {
chomp($val);
#my @new_arr = $sel->get_text($val);
print "\n";
print $val; ***this prints the xpath value which i needed***
my $V1 = $sel->get_text("$val"); ***#i'm passing the same xpath here within double quotes but says as invalid xpath***
print($V1 . "\n");
my @new_arr = $sel->get_text("$val");
}
}
내가 내가 그것을 할 수 있습니까? XPath를 전달하는 잘못된 방법을 다음과 같은 건가요?
@ Daxim : 백 슬래시를 제거하더라도 필요한 내용이 인쇄됩니다. 하지만 그 값을 get_text ->()로 전달하면 유효하지 않은 xpath로 표시됩니다. 또 다른 것은 셀레늄 IDE에서 테스트 케이스를 실행하고 펄에서 그것을 내 보낸 후에 백 슬래시와 함께 나타난다. –
조차도 두 용어를 if ($ xpath eq $ val)와 비교하면 두 결과가 동일하므로 출력됩니다. –