AJAX
как выполнить Ajax + webdriver ?
Опубликовано Kostuan в 22.11.2011Есть такая кнопка она появлятся при наведении курсора мыши на область с сообщением и пропадает когда убераем.
<a class="uiSelectorButton " ajaxify="/ajax/feed/feed_menu.php?
Пробовал просто черес css он говорит что отрабатывает а элемент не отрабатывается так как его не на странице. Должен выпадать список при нажатии...
Как можно это реализовать?
Автоматизация Ajax с помощью Selenium, BDD и Page Object
Опубликовано polusok в 28.10.2011Одна сложность, с которой сталкиваются тестеры, когда они начинают управлять браузерами с помощью Cucumber, - как управлять сайтами, которые содержат множество Ajax вызовов.
Они пишут скрипты, которые предполагают, что элементы на странице существуют, и очень удивлены, когда тесты не проходят, потому что они пытаются получить доступ к тому, чего еще не было на странице.
В этой статье я напишу простой сценарий, который демонстрирует асинхронные действия обработки Page Object gem. Я также кратко ознакомлю Вас с новым Gem, который я использую для создания моих новых проектов. Я сделаю все это написанием сценария, который использует один из примеров, который Google предоставила для демонстрации GWT библиотеки. Для тех из вас, которые посетили один из моих уроков, вы уже знакомы с этим примером, но, возможно есть еще несколько новых вещей для вас для изучения. Давайте начнем писать код!
Создание проекта
Первое, что мне нужно сделать, - это создать структуру моего проекта. Я думаю, я буду использовать Page Object gem с Selenium. Давайте использовать testgen gem для запуска. Если у вас нет установленного gem, вы можете просто выполнить gem install testgen. Вот команда, которую я использовал для создания своего проекта:
testgen project ajax_example --pageobject-driver=selenium
Это создает всю структуру проекта. Давайте быстро проверим, все ли в порядке. Первое, что нужно сделать, это убедиться, что все gem установлены. Testgen создал Gemfile файл для нас, теперь все, что нужно нам сделать, - это изменить на вновь созданные ajax_example каталог и выполнить bundle install.
Теперь, когда мы уверены, что у нас все gem установлены, пришло время для запуска Сucumber. Testgen создал Rakefile для нас, чтобы сделать это легко. Просто введите rake команду в ajax_example каталоге. Вы должны увидеть следующее:
Using the default profile... 0 scenarios 0 steps 0m0.000s
Теперь мы готовы к написанию сценария.
Написание сценария
Мы будем использовать пример DynaTable с сайта GWT. Вот эта страница. На этой странице выберите checkbox «день», а затем классы, предлагаемые на этот день, отображаются в строке с именем профессора. Давайте попробуем написать сценарий.
Я начинаю с создания файла в каталоге функций. Вот содержание:
Feature: Displaying class schedules
I need to be able to display the class schedule for professors. When I
select a day the page should display all of the class taught by professors
on that day as well as the time for the classes.
Scenario: Displaying classes offered by professors
Given I am on the google dynamic table page
When I view the schedule for "Monday"
Then I should see that "Inman Mendez" offers a class at "Mon 9:45-10:35"
When I view the schedule for "Tuesday"
Then I should see that "Inman Mendez" offers a class at "Tues 2:15-3:05"
And I should see that "Teddy Gibbs" offers a class at "Tues 10:00-10:50"
Заметьте, что я ничего не сказал о нажатии кнопок или checkboxes. Также заметьте, что я никоим образом не указал, как находятся или отображаются на странице класс или имя инструктора. Как вы думаете, почему я это сделал? В будущих статьях у меня будет намного больше, что рассказать об этом.
Мой следующий шаг заключается в создании шага определений. Для этого я снова выполню команду ‘rake’. Cucumber достаточно хорош для создания шагов ожидания.
Given /^I am on the google dynamic table page$/ do pending # express the regexp above with the code you wish you had end When /^I view the schedule for "([^\"]*)"$/ do |arg1| pending # express the regexp above with the code you wish you had end Then /^I should see that "([^\"]*)" offers a class at "([^\"]*)"$/ do |arg1, arg2| pending # express the regexp above with the code you wish you had end
Я знаю, что собираюсь создать объект страницы, но в первую очередь я хочу подумать о том, как этот объект будет выглядеть. Я думаю, что я напишу код, который я бы хотел иметь через пару определений. Вот то, что я получил:
When /^I view the schedule for "([^\"]*)"$/ do |day| page.select_schedule_for day end Then /^I should see that "([^\"]*)" offers a class at "([^\"]*)"$/ do |name, expected| page.schedule_for(name).include? expected end
Да. Я думаю, что именно так я хочу взаимодействовать со страницей объекта. Эти шаги определений незавершенные. Я только что написал достаточно, чтобы понять, что мне нужно добавить на страницу объект, который я собираюсь писать. Теперь, давайте писать.
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
Удаленная работа Selenium + Groovy
Опубликовано polusok в 12.09.2011Нужны бойцы для выполения проекта по автоматизации.
Детали:
- RIA приложение
- написано на grails
- много AJAX, js, динамические объекты
- flash
- google maps с объектами на карте
- вообще автоматизация не тривиальная и интересная
Нужно:
- знание и опты автоматизации на Selenium
- знание Java или Groovy
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
RoutineBot
Опубликовано d3unka в 31.08.2011
Поставщик:
AKS-Labs
Распространение:
Платный
Цена:
$495 RoutineBot это програмное обеспечение для визуального автоматизированого тестирования, которое дает пользователям возможность создавать и выполнять тесты основаны на графических паттернах.
Ключевые преимущества:
- Позволяет автоматизировать визуальное тестирование двумя методами - разрабатывая скрипты как вручную, так и посредством записи.

- Поддерживает Pascal, JavaScript и Basic языки программирования.
- Может автоматизировать большое количество событий - события мышки(нажатие, передвижение), клавиатуры(ввод текста), делать скриншоты, загружать и сохранять данные, скачивать файлы, работать с приложениями и окнами.
- Поддериживает широкое количество функций для логирования событий(генерация html лога с предоставление скриншотов)
Поддерживаемые технологии:
Windows Forms, Flex, SilverLight, HTML, Ajax, Pascal, JavaScript и Basic
Поддерживаемые ОС:
Windows
Язык тестов:
Pascal
Язык тестов:
JavaScript
Язык тестов:
Basic
Тестируемые приложения:
Windows Forms, Flex, SilverLight, HTML, Ajax
Скачать:
Download
Блоги:
www.testandtry.com »
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
Selenium 2.0: будущее тестирования веб-приложений (Алексей Баранцев)
Опубликовано polusok в 05.10.20102 октября на конференции DevPoint (Новосибирск) Алексей Баранцев выступил с докладом «Selenium 2.0: будущее тестирования веб-приложений».
В конце 2010 года ожидается выход новой версии популярного инструмента автоматизации тестирования веб-приложений Selenium 2.0. Новая версия обещает улученную поддержку современных AJAX-приложений, увеличение скорости выполнения тестов, преодоление имеющихся в Selenium 1.0 ограничений, таких как невозможность работы с “нативными” диалогами. Однако я собираюсь рассказать не только и не столько про эту новую версию (хотя без этого, конечно, не обойтись), но и вообще про всю ту инфраструктуру, которая сложилась вокруг этого замечательного фреймворка и продложает активно развиваться.
Говоря про “дваноль” я имею в виду совершенно уникальный для инструментов тестирования феномен – перерастание отдельного фреймворка в целое созвездие взаимно поддерживающих друг друга инструментов, появление множества маленьких и средних компаний, предоставляющих платные и бесплатные сервисы с использованием этих инструментов. Модульная расширяемая архитектура Selenium позволяет говорить о нём не как о фреймворке, а как о модульной платформе, на базе которой или из частей которой строятся другие инструменты.
Да, а что там про будущее тестирования веб-приложений? Мне кажется, что именно тот путь развития, по которому движется Selenium, является наиболее перспективным, потому что он обеспечивает отличную питательную среду для развития как самого фреймворка, так и сопутствующих инструментов. Залог выживания – в сотрудничестве!
Смотреть видео:
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
Комментарии
Как-то так:elem_xpath =
тоже сталкиваюсь с такой
вручную не
ясно, жаль что ребята не
это скорее всего конфигурационная проблема
- 1 of 369
- ››







