我有一个包含以下代码的测试文件。页面打开,前三个测试运行,但接下来的3个不运行。他们不会失败。他们只是不跑。为什么WWW :: Selenium中的所有测试似乎都不运行?
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")]');
只需要删除双引号即可。