我有一個包含以下代碼的測試文件。頁面打開,前三個測試運行,但接下來的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")]');
只需要刪除雙引號即可。