У меня есть тестовый файл, который содержит следующий код. Страница открывается, и первые три теста запускаются, но следующие три не запускаются. Они не терпят неудачу. Они просто не бегают.
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")]');
Это приводит к сбою теста. Есть ли причина, по которой этого не найти?
EDIT:
Я использовал страницу 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")]');
просто требовала удаления двойных кавычек.