Перейти к содержимому

Lace

Регистрация: 05 дек 2012
Offline Активность: 23 сен 2014 12:04
-----

Мои темы

Selenium2+Thucydides+Java. Тестирование результата поиска = переход ку

19 ноября 2013 - 10:14

Добрый день!
Есть ли возможность с помощью Selenium узнать, на каком элементе находится курсор в списке вэбэлементов.

Задача:
Есть список кодов учреждений, в котором более сотни записей. При поиске по коду, на экран список выводится начиная с элемента, заданного критерием поиска (на нем же фокусируется курсор).
Т.е. если ищется B11, то курсор в списке переместится на первый элемент, соответствующий искомому критерию: и далее будут идти элементы B11A, B11AB и т.д.
Однако все предыдущие элементы B10A, B10ABA и т.д. все так остаются в выводимом на экран списке (если прокрутить окно с результатами поиска вверх, то они будут видны, т.е. проверки на visible в данном случае не подходят).

Я вижу эту проверку примерно так:
List<WebElement> elements = getDriver().findElements(By.id("institutions_box"));
        for(WebElement institution: elements){
            //String selectedInstitution = метод, определяющий на каком именно элементе находится курсор, после чего берется его текст
            assertTrue(selectedInstitution.contains(searchedCriteria));


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

Selenium + Thucydides + Java: драйвер не видит "скрытые" элеме

09 октября 2013 - 13:10

Неожиданно столкнулась с проблемой. Selenium перестал видеть элемент, если он находится за границей экрана.
Суть: на нажатие кнопки открывается список с названиями банков, после клика на банк открывается список с его филиалами. Список большой, более 40 наименований. Соответственно показывается список с прокруткой экрана.
В ходе теста я получаю xpath, абсолютно валидный (проверено неоднократно). Если попробовать кликнуть по этому xpath вручную, то выбранный банк прекрасно находится (даже если он за границей видимости экрана) и открывается. Почему это не происходит в тесте - не понимаю. Ранее Selenium такие варианты прекрасно обрабатывал. Попробовала выставить ожидание элемента (мало ли, он не успевает подгрузиться) - не помогло.

Код:
List<WebElement> bankList = getDriver().findElements(By.xpath("//*[@id='bank']/li"));

        int bankCount = bankList.size();
        int randomChose = new Random().nextInt(bankCount)+1;
        System.out.println("Chosen bank ["+randomChose+"]");
        for(int i = 0; i < 20; i++){
            waitABit(500);
            if (element(bankList.get(randomChose)).isVisible()) i = 20;
        }
            getDriver().findElement(By.xpath("//*[@id='bank']/li["+randomChose+"]/span")).click();
        List<WebElement> filialList = getDriver().findElements(By.xpath("//*[@id='bank']/li[" + randomChose + "]/ul/li"));
            int filialCount = filialList.size();
            int randomFilial = new Random().nextInt(filialCount)+1;
        for(int i = 0; i < 10; i++){
            waitABit(500);
            if (element(filialList.get(randomFilial)).isVisible()) i = 10;
        }
            getDriver().findElement(By.xpath("//*[@id='bank']/li["+randomChose+"]/ul/li["+randomFilial+"]")).click();

    }

Трейс сообщения об ошибке:
Скрытый текст

Selenium + Thucydides + Java: Собрать, прокликать и проверить все ссыл

02 августа 2013 - 07:56

Заголовок должен быть: Selenium + Thucydides + Java: Собрать, прокликать и проверить все ссылки внутри элемента

Добрый день!
Столкнулась с задачкой, которая ставит меня в тупик...

Есть элемент с id = "names". Внутри этого элемента лежат ссылки. Каждая ссылка - это имя.
Код такой:
<ul id="names">
<li>
<strong>IVANOV</strong>
<ul>
<li>
<a href="#">IVANOV</a>
</li>
</ul>
</li>
</ul>
Мне надо: Собрать в List все имена, сохранить каждое значение href как String (для последующего сравнения).
После нажать на каждую ссылку внутри элемента, сравнить что открывшаяся страница содержит имя (String, сохраненный на предыдущем шаге).
Вернуться на предыдущую страницу.
Нажать следующую ссылку с именем, сравнить имена и т.д. по всему списку.

Сейчас я собираю имена в список, но вот что дальше с этим списком делать я не могу сообразить. nameList - это элемент, в котором находятся ссылки и который задан аннотациtq @FindBy в начале класса.
List<WebElement> Names = nameList.findElements(By.xpath("href"));

Кроссбраузерное тестирование. Проблемы с прохождением тестов в IE

24 июля 2013 - 13:48

Насколько я знаю, с такой проблемой я сталкиваюсь не первая.

Есть автоматизированные тесты, которые запускаются в FF, Chrome и IE. Tecты написаны Java + Selenium + Thucydides
Если в первых двух браузерах тесты проходят без проблем, то в IE падают в 80% случаев.
Чаще всего ошибка происходит из-за того, что IE работает слишком медленно и тест пытается получить элемент до того, как запрашиваемая страница до конца загружается (или вовсе открывается).
Все аяксовые ожидания для каждой из страниц в тестах прописаны.
Элементы ищутся в 90% случаев по id.

Выставлять только из-за IE паузы очень не хочется.
Есть ли другие пути, как решить эту проблему?

Заранее спасибо!

Thucydides + java. Как запустить кросс-платформенные тесты?

23 июля 2013 - 08:49

День добрый!

Есть набор автоматизированных тестов, написанных с использованием Thucydides+java.
Тесты прогоняются в FF, Chrome и IE с одной машины, теперь необходимо с этими же тестами выйти "в люди"
Т.е. запускать их в на разных OC и в вышеупомянутых браузерах разных версий.

В документации Thucydides и в их группе я не нашла, как это правильно делать.
Подскажите, плс, в какую сторону начинать искать, куда копать.
Тот же Jenkins - это из нужной мне оперы или нет?

Спасибо!