Watij
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
30.07.2010
Watij - это чистый Java API, созданный, чтобы решить автоматизацию веб-приложений. Основанный на простоте Watir и улучшенный возможностями Java. Watij автоматизируетфункциональное тестирование веб приложений через реальный браузер.Скачать Watij можно здесь. Для примера вот скрипт, который выполняет такой Test Case:
| Description | Data input | Expected Result |
|---|---|---|
| Пользователь заходит на страницу http://komarichina.appspot.com | Отображается главная страница | |
| Пользователь выбирает раздел "Contact" | Отображается страница "Contact" | |
| Пользователь ничего не вводим в поля и выбирает кнопку "send" | name="" email="" text="" |
Отображаетются сообщения об ошибках "Name is required." |
| Пользователь вводит данные в поля формы и нажимает кнопку "send" | name="Galina" email="admin@gmail.com" text="Hello! I'm use your script" |
Отображается сообщение "Thank you" |
IE ie = new IE();
ie.start("http://komarichina.appspot.com");
ie.link("contact").click();
ie.form(name, "sendMailForm").submit();
if (!ie.containsText("Name is required.") ||
!ie.containsText("Email is required.") ||
!ie.containsText("Text is required.")) {
throw new Exception("Informational messages about required fields don't exists");
}
ie.textField(name, "name").set("Galina");
ie.textField(name, "email").set("admin@gmail.com");
ie.textField(name, "text").set("Hello! I'm use your script");
ie.form(name, "sendMailForm").submit();
if (!ie.containsText("Thank you.")) {
throw new Exception("Informational message \"Thank you.\" are exists");
}
System.out.print("The script is executed");
ie.close(); В распакованной папке Watij запустим launchWatijBeanShell.bat и построчно введем наш скрипт
Можно так же запустить скрипт целиком, для этого заходим File->Workspace Editor, в Workspace Editor выбираем File->Open->выбираем наш скрипт, затем Evaluate->Eval in Workspace. После чего начинается выполнение нашего скрипта, после его окончания мы видим, что в консоле ошибок нет.
01.09.2011
#1
if (!ie.containsText("Thank
В переводе - если на странице нет текста Thank you вылетает эксепшн что сообщение присутствует. Долго медитировал, все равно не понял. |
08.03.2012
#2
Watir- соединение с базой данных
У меня возникла проблемка с соединением с БД.
Опишу свою ситуацию:
Есть веб-приложение, где я создаю реквест. После его сохранения я могу проверить его присутствие со стороны UI и DB (вручную). Хочу сделать так, чтобы после создание реквеста ( эта часть уже автоматизированная) совершалось автоматичесское соединение с базой данных и соответствующей командой указывало на только что созданный мной реквест (например, select * from my_request order by request_id desc). И как проверить, соответствует ли эта последняя запись в БД именно моему новосозданному реквесту или нет.
В интернете нашла вот такой код:
connection = OCI8.new( 'UserName', 'password', 'ip:port/scheme')
cursor = connection.exec('select * from table')
while r = cursor.fetch_hash
r.each {|key, value| puts "#{key} is #{value}" }
end
puts cursor.row_count
cursor.close
connection.logoff
Я использовала только часть его:
require
'oci8'
connection = OCI8.new( 'мой логин', 'мой пароль', 'название БД')
cursor = connection.exec('select * from sm_programs order by program_id desc;')
cursor.close
connection.logoff
Запускаю с командной строки. Выдает ошибку

У меня OCI8 инсталирована
Tnsnames.ora настроен
Пользуюсь:
DB oracle
PLSQL Developer

Подкажите, как можно решить мою проблему?
Спасибо
08.03.2012
#3
Ох, уж этот
Ох, уж этот Oracle...
Попробуйте протестировать соединение с БД при помощи Oracle Network Manager, со стороны клиента и базы данных (если у вас клиент и БД на разных серверах)
29.03.2012
#4
Watij - выпадающий список
Здравствуйте, у меня возникла следующая проблема:
Есть веб-приложение и мне надо выбрать из выпадающего списка значение.
Ввожу 'lon' в текстовое поле следующим образом:
ie.textField(id, "Search-OriginDestinationInformation-Destination-location_input").set("lon");
Далее необходимо в появившемся списке выбрать конкретное значение ( например, где id='CITY_LON_GB' ).
Список задан при помощи <ul><li> ...</li></ul>:
Подскажите пожалуйста как это можно сделать?
Спасибо,
Вероника
29.03.2012
#5
короче так: Selenium
короче так:
Selenium WebDriver + Java.
driver.getElement(By.id("Search-OriginDestinationInformation-Destination-location_input"));
забираем элемент списка. Дальше по кривому коду видно что нужно перейти на next sibling element от этого div с id "Search-OriginDestinationInformation-Destination-location_input".
Пишем функцию:
public WebElement getChildAfterNextSiblingElement(String id, int nodeIndex){
WebElement elem = null;
elem = (WebElement)((JavascriptExecutor)PageLoader.GetInstance()).executeScript("return one('" + id + "').nextSibling.childNodes[" + nodeIndex + "]""); //посмотрите тут со скобками так как в єклипсе он красиее чем на сайте виглядит)
return elem;
}
Что єта зараза следает: 1. one() это тоже самое то driver.getElement(By.id("id")). 2. nextSibling. - заберет <ul> после div 3. .childNodes[" + nodeIndex + "]"") - чайлдние елементі списка дергать будет
getChildAfterNextSiblingElement("Search-OriginDestinationInformation-Destination-location_input", 0).click(); должно кликнуть по первому, в зависимости от индекса чайлда и следующих всех, индексация от - 0 !
29.03.2012
#6
Спасибо Taras за помошь в
Спасибо Taras за помошь в Selenium, но в настоящий момент мне хотелось бы сделать это с помощью Watij (я сейчас изучаю этот инструмент).
29.03.2012
#9
извините конечно но, мне
извините конечно но, мне одному это напоминает связку селениум рц+джава?







