Selenium: просматривайте каждый <option>в выпадающем списке - PullRequest
1 голос
/ 05 января 2010

Я использую Selenium для облегчения бремени тестирования, и у меня есть около 1000 различных комбинаций раскрывающихся списков (разбросанных по нескольким страницам и раскрывающимся спискам), которые необходимо протестировать. По сути, я хотел бы выбрать каждый

внутри

1 Ответ

3 голосов
/ 05 января 2010

На каком языке используется Selenium?Если вы просто используете Selenium для написания HTML, я бы порекомендовал перейти на язык программирования и использовать Selenium RC - привязки доступны для широкого спектра языков, таких как Java и Python.Я полагаю, что в Java следующее будет делать то, что вы хотите:

void test(Selenium browser, String startPageUrl,
          String firstFormLocator, String firstSelectLocator,
          String secondFormLocator, String secondSelectLocator) {
    browser.open(startPageUrl);
    for (String option : browser.getSelectOptions(firstSelectLocator)) {
        browser.open(startPageUrl);
        browser.select(firstSelectLocator, "label=" + option);
        browser.submit(firstFormLocator); // Or click the submit button
        for (String subOption : browser.getSelectOptions(secondSelectLocator) {
            browser.open(startPageUrl);
            browser.select(firstSelectLocator, "label=" + option);
            browser.submit(firstFormLocator); // Or click the submit button
            browser.select(secondSelectLocator, "label=" + subOption);
            browser.submit(secondFormLocator); // Or click the submit button
            // Do your assertions
        }
    }
}

Код не совсем читабелен, поэтому может потребоваться некоторое время, чтобы немного абстрагировать страницу с помощью шаблона Page Object.Это также помогает сделать код более понятным, например, когда вы меняете идентификатор элемента, вам нужно всего лишь изменить его в объекте страницы, а не в каждом тесте.

Также имейте в виду, что делать это 1000 разне будет быстрымВозможно, стоит посмотреть, проводите ли вы аналогичное тестирование чуть ниже веб-интерфейса, чтобы обеспечить более быструю обратную связь с тестами, а затем тестируйте, чтобы веб-интерфейс правильно использовал нижний уровень.Кроме того, вам действительно нужно 1000 тестов?Похоже, что здесь есть некоторая избыточность в тестировании - не пройдет ли 1000-й тест, если пройдут последние 999?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...