2010-05-05 73 views
1

我想用xpath获取一堆dom对象,并通过那些循环来检查它们是否包含指定的文本,这可能是在Selenium IDE或rc中吗? Perl是我喜欢的语言Selenium Testing

的XPath会像 的XPath = // TBODY [@类= '表的数据']/TR/TD/DIV [@类= '表项']

这将返回表中的所有行项目,但如果包含指定的文本字符串,则需要检查每个div。 Selenium有可能吗?

问候

+1

WWW :: Selenium是显而易见的部分(或Test :: WWW :: Selenium)。有人可以更明确地回答“测试多个div匹配xpath都包含指定的文本”吗?或者至少显示如何做“多个”或“包含指定文本”部分的提示? – ysth 2010-05-05 17:00:24

回答

1

WWW::Selenium模块非常适合您的需要。

older answer另一个问题:

它支持通过XPath的元素,表ID,文本(正则表达式匹配!)和URL访问的元素...

你需要请下载Selenium Remote Control 并让它在后台运行 以使模块正常工作。

一个告诫是,如果你的页面加载时间不可预测,它可能不是一个好的选择。

0

如果你想要的是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可能有点偏离,但你明白了。