我想知道如何从表中选择特定行,如小工具中所示。
自动获取以下代码:
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");
此外,每次选择一行并删除时,我都会收到相同的录音。
有人可以解释如何检查上面快照中显示的特定值,然后选择该行并删除它吗?
请用代码向我解释。
提前感谢。
答案 0 :(得分:3)
有人可以在上面的编码中解释以下内容吗?
$sel->click_ok("//table[1]/tbody/tr/td[1]/div/table/tbody/tr/td[2]/img");
$sel
是对Test :: WWW :: Selenium
->click_ok()
调用该对象的click_ok
方法。
此方法的参数是locator
"//table[1]/tbody/tr/td[1]/div/table/tbody/tr/td[2]/img"
是一个xpath表达式,用于指定要对其执行操作的HTML元素。
//
表示定位器类型是xpath表达式。
table[1]
指定表的第一次出现(可能有几个连续的表)
...
td[2]
指定表数据元素的第二次出现。
其他部分应该是显而易见的。总的来说,它在嵌套表的第二列中指定了一个图像。
(更新)
任何人都可以解释如何检查如图所示的特定值 在上面的快照中,然后选择该行
要选择包含名为tr
的属性且值为value
的元素的"Yes"
,您可以使用
//*[@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"; }