我想用xpath获取一堆dom对象,并通过那些循环来检查它们是否包含指定的文本,这可能是在Selenium IDE或rc中吗? Perl是我喜欢的语言Selenium Testing
的XPath会像 的XPath = // TBODY [@类= '表的数据']/TR/TD/DIV [@类= '表项']
这将返回表中的所有行项目,但如果包含指定的文本字符串,则需要检查每个div。 Selenium有可能吗?
问候
我想用xpath获取一堆dom对象,并通过那些循环来检查它们是否包含指定的文本,这可能是在Selenium IDE或rc中吗? Perl是我喜欢的语言Selenium Testing
的XPath会像 的XPath = // TBODY [@类= '表的数据']/TR/TD/DIV [@类= '表项']
这将返回表中的所有行项目,但如果包含指定的文本字符串,则需要检查每个div。 Selenium有可能吗?
问候
的WWW::Selenium
模块非常适合您的需要。
从older answer另一个问题:
它支持通过XPath的元素,表ID,文本(正则表达式匹配!)和URL访问的元素...
你需要请下载Selenium Remote Control 并让它在后台运行 以使模块正常工作。
一个告诫是,如果你的页面加载时间不可预测,它可能不是一个好的选择。
如果你想要的是XPath搜索HTML,那么有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可能有点偏离,但你明白了。
WWW :: Selenium是显而易见的部分(或Test :: WWW :: Selenium)。有人可以更明确地回答“测试多个div匹配xpath都包含指定的文本”吗?或者至少显示如何做“多个”或“包含指定文本”部分的提示? – ysth 2010-05-05 17:00:24