2012-03-05 54 views
1

我有一個包含以下代碼的測試文件。頁面打開,前三個測試運行,但接下來的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_okclick_ok,type_ok)。

xpath問題$sel->click('//a[contains(@href, "/settings")]');只需要刪除雙引號即可。

回答

0

我一直在使用WWW ::硒頁面不是測試:: WWW ::硒在http://search.cpan.org/~lukec/Test-WWW-Selenium-1.32/lib/Test/WWW/Selenium.pm

該模塊是一個WWW ::硒子類提供了一些用於編寫測試有用的方法。對於每個Selenium命令(open,click,type,...),都有一個對應的_ok方法來檢查返回值(open_ok,click_ok,type_ok)。這個xpath的問題$ sel-> click('// a [contains(@href,「/ settings」)]');

只需要刪除雙引號即可。

相關問題