perl-selenium:like()或$ sel-> like()?

时间:2011-03-28 11:42:54

标签: perl testing selenium

Perl-Selenium还提供了Test :: More的标准方法,例如ok(),like(),is()等,也作为对象方法,例如$sel->like()

($ sel是selenium perl对象)

是否应该使用这些对象方法?哪一个更受欢迎?

我很困惑,因为喜欢()和$ sel->喜欢似乎在某些地方表现不同。 在这里,我假设文本确实在页面上找到。

like( $found, qr /$text/, "found '$text' on page" ) ; # WORKS FINE

 # DOES NOT WORK, ERROR:    "doesn't look much like a regex to me."
$sel->like( $found, qr/$text/ , "found '$text' on page")

所以似乎纯粹的like()方法比$ sel-> like()更好?

1 个答案:

答案 0 :(得分:3)

看起来Test::WWW::Selenium本身并不提供like方法,而是title_liketext_like等许多方法。

这给了我们

like( $found, qr /$text/, "found '$text' on page" );

$sel->text_like('id', qr/$text/, "found '$text' on page");

修改Test::WWW::Selenium中有like方法,但转储后,它看起来像这样:

sub {
    my $tb = 'Test::More'->builder;
    return $tb->like(@_);
}

这意味着通过调用$sel->like(...),您将向方法调用添加一个额外参数($sel)。该方法是Test::Builder继承的残余,它可能不应该直接使用。