Почему не все тесты в WWW :: Selenium запускаются? - PullRequest
1 голос
/ 05 марта 2012

У меня есть тестовый файл, который содержит следующий код. Страница открывается, и первые три теста запускаются, но следующие три не запускаются. Они не терпят неудачу. Они просто не бегают.

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")]'); просто требовала удаления двойных кавычек.

1 Ответ

0 голосов
/ 06 марта 2012

Я использовал страницу WWW :: Selenium, а не Test :: WWW :: Selenium на http://search.cpan.org/~lukec/Test-WWW-Selenium-1.32/lib/Test/WWW/Selenium.pm

Этот модуль является подклассом WWW :: Selenium, предоставляющим некоторые методы, полезные для написания тестов.Для каждой команды Selenium (open, click, type, ...) существует соответствующий метод _ok, который проверяет возвращаемое значение (open_ok, click_ok, type_ok).

Проблема xpath $ sel-> click ('// a [содержит (@href, "/ settings")] ');

просто нужно удалить двойные кавычки.

...