【发布时间】:2012-03-05 17:12:30
【问题描述】:
我有一个包含以下代码的测试文件。页面打开,前三个测试运行,但接下来的三个不运行。他们不会失败。他们只是不跑。
my $sel = Test::WWW::Selenium->new(
host => 'localhost',
port => 4444,
browser => 'firefox',
browser_url => $uri,
singlewindow => 1,
);
$sel->open_ok('/');
$sel->is_element_present_ok('username');
$sel->is_element_present_ok('password');
$sel->is_text_present('Username');
$sel->is_text_present('Password');
$sel->is_text_present('Login');
然后我登录表单。
$sel->type("name=username", $username);
$sel->type("name=password", $password);
$sel->submit('dom=document.forms["formfield"]');
$sel->is_text_present('Change Log');
我能够登录,并且页面上显示文本“更改日志”,但测试从未运行。对不存在的文本的测试也不运行。
$sel->is_text_present('Fee based gumbo');
有人知道为什么这些测试不会运行吗?
我也有一个链接测试
<a style="text-decoration:none;" href="/settings">Settings</a>
作为
$sel->click('//a[contains(@href, "/settings")]');
这会导致测试崩溃。有没有找不到的原因?
编辑:
我一直在使用WWW::Selenium 页面,而不是Test::WWW::Selenium。
这个模块是一个 WWW::Selenium 子类,它提供了一些对编写测试有用的方法。对于每个 Selenium 命令(open、click、type、...),都有一个相应的 <command>_ok 方法来检查返回值(open_ok、click_ok、type_ok)。
xpath 问题$sel->click('//a[contains(@href, "/settings")]'); 只需删除双引号即可。
【问题讨论】:
标签: perl selenium-rc