【问题标题】:Selenium Testing硒测试
【发布时间】:2011-02-15 22:26:03
【问题描述】:

我想用 xpath 获取一堆 dom 对象并循环遍历它们以检查它们是否包含指定的文本,这在 Selenium IDE 或 rc 中是否可行? Perl 是我的首选语言

XPath 类似于 xpath=//tbody[@class='table-data']/tr/td/div[@class='table-item']

这将返回表中的所有行项目,但我需要检查每个 div 是否包含指定的文本字符串。 Selenium 可以做到这一点吗?

最好的问候

【问题讨论】:

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

标签: perl selenium selenium-rc selenium-ide gui-testing


【解决方案1】:

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

older answer 到另一个问题:

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

您需要下载Selenium Remote Control 并让它在后台运行 让模块工作。

需要注意的是,如果您的页面加载时间不可预测,这可能不是一个好的选择。

【讨论】:

    【解决方案2】:

    如果您只想对 HTML 进行 XPath 搜索,那么 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 可能有点不对劲,但你明白了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 2010-10-19
      相关资源
      最近更新 更多