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

Публикации egors

27 публикаций создано egors (учитываются публикации только с 29 марта 2023)



#73642 Не получается сохранить файл

Отправлено автор: egors 02 февраля 2010 - 21:33 в Selenium - Functional Testing

Спасибо за советы, запустил под тестовым профилем, указал требуемую папку для сохранения, установил флажок, работает на ура!

Пользуясь случаем хотел узнать, а для окна подтверждения, есть подход у селениума?
Окно такого вида:
Изображение



#73520 Не получается сохранить файл

Отправлено автор: egors 27 января 2010 - 17:25 в Selenium - Functional Testing

Здравствуйте!

Требуется сохранить файл, нажимаю на ссылку, появляется следующее окно:

Изображение

Не удается получить доступ к нему, пробовал обратится как к confirmation, доступа нет.

Каким способом возможно сохранить?



#72467 Отладка кода через консоль

Отправлено автор: egors 25 ноября 2009 - 11:49 в Selenium - Functional Testing

Спасибо, но пишу на java

+ допустим Eclipse

Привет!

Если ты пишешь на .NET, то тебе поможет ReSharper





#72487 Отладка кода через консоль

Отправлено автор: egors 26 ноября 2009 - 08:25 в Selenium - Functional Testing

То что нужно!!
Большое Спасибо!:)

В данном View будет отображен результат вычисленного выражения




#72475 Отладка кода через консоль

Отправлено автор: egors 25 ноября 2009 - 14:48 в Selenium - Functional Testing


В чем может быть причина?


Похоже, что после добавления сайта плагина вы не сделали Install для него. Но сразу могу сказать, что дебаг там, действительно будет стандартный джавовский. А что вам дополнительно надо?


Install сдалал, но желанного результата не получил)
Требовалось что-то типо следующего:

Устанавливаем брейкпоинт, нажимаем debug, выполнение кода останавливается в точке брейк поинта.
Далее в консоли выполнять методы селениума и в окне выхода получать результат выполненной операции, т.е. :

вводим код в консоль
selenium.getSelectedValue("gender");
в окне выхода получаем результат
male

вводим код
assertEquals("male", selenium.getSelectedValue("card"));
получаем результат
true

Примерно так)



#72461 Отладка кода через консоль

Отправлено автор: egors 25 ноября 2009 - 11:03 в Selenium - Functional Testing

Доброго времени суток

Возможно ли при использовании Selenium RC (+ допустим Eclipse) отлаживать код путем установки брекпоинта и далее выполнять через консоль методы селениума?

Спасибо

Конечно можно. Для этого надо дополнительно установить плагины Эклипс для работы с определенными тестовыми движками. Для JUnit-a вроде бы в базовой поставке есть, а для TestNG надо дополнительно устанавливать. Для этого надо:
1) в Эклипсе выбрать меню Help > Software Updates > Find and Install
2) выбрать Search for New Features to Install и нажать Next
3) нажать New Remote Site, указать имя (произвольное) и указать URL: http://beust.com/eclipse.

Прим.: это для Eclipse 3.3 (Ganymede), для других версий примерно то же самое ,могут отличаться некоторые детали.

Когда этот плагин установлен, осталось перезапустить Эклипс и затем открыть нужный тест. По правому клику появится меню, в котором будет опция TestNG. У этой опции есть 2 подменю: Run as Test и Debug as Test. Вот вторую опцию вы можете использовать для отладки в Эклипс.



Отлично, правда не получилось установить(

Выполнил:
Меню -> Help -> Software Updates -> вкладку Awiabele Software -> Add Site -> Добавляю линк http://beust.com/eclipse

Добавляется в список:
Name: file:/usr/local/cbeust/java/testng-eclipse-update-site/ - metadata
Location: http://beust.com/eclipse

Далее:
нажимаю Close - > перезагружаю -> устанавливаю брекпоинт в тесте -> нажимаю по Test.java правой кнопкой -> в появевшемся меню
не нахожу TestNg, есть только debug As - > TestNg Test, которая ведет к обычному дебагу в которой не нашел консоли для ввода методов.

Использую:
Eclipse (Ganymede) SDK version: 3.4.2

В чем может быть причина?



#72433 Отладка кода через консоль

Отправлено автор: egors 24 ноября 2009 - 15:34 в Selenium - Functional Testing

Доброго времени суток

Возможно ли при использовании Selenium RC (+ допустим Eclipse) отлаживать код путем установки брекпоинта и далее выполнять через консоль методы селениума?

Спасибо



#72621 Порядок запуска тестов в TestNg

Отправлено автор: egors 03 декабря 2009 - 11:49 в Selenium - Functional Testing

Спасибо)

http://testng.org/do...pendent-methods




#72617 Порядок запуска тестов в TestNg

Отправлено автор: egors 03 декабря 2009 - 10:46 в Selenium - Functional Testing

Доброго дня

Столкнулся со следующей ситуацией:

1. testing.xml имеет вид:

<!DOCTYPE suite SYSTEM "http://testng.org/te...estng-1.0.dtd">
<suite name="Suite1">
<test name="Test1" annotations="JDK">
<parameter name="browser" value="*firefox" />
<parameter name="url" value="https://link.org/" />
<classes>
<class name="tests.ClientBvi"/>
</classes>
<methods>
<include name=".*1*."/>
<include name=".*2*."/>
</methods>
</test>
</suite>


При запуске файла, первым воспроизводится метод "2". Менял местами, перечислял через названия групп, убирал перечисление - аналогичная ситуация)
Как сделать так чтобы первым запускался метод "1" ?

Спасибо



#72373 Ввод значения в поле на Internet Explorer

Отправлено автор: egors 20 ноября 2009 - 10:14 в Selenium - Functional Testing

Заметил, что на эксплорере дольше выполняются селениумовские методы. Возможно как-то уменьшить время выполнения?

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


Благодарю за помощь и советы:)



#72300 Ввод значения в поле на Internet Explorer

Отправлено автор: egors 18 ноября 2009 - 13:55 в Selenium - Functional Testing

Доброго времени суток:)

Столкнулся со следующей ситуацией:

1. При воспроизведении теста на Iexplore, выполняется

selenium.type("password", "123456");

2. Появляется алерт "Операция вставки недопустима", так как существует Js метод на проверку вставки.
3. Не получается и с помощью:

selenium.setExtensionJs("document.getElementsByName('password')[0].value = '123456'");

Обхожу только так:

selenium.focus("password");
selenium.keyPressNative("49");
selenium.keyPressNative("50");
selenium.keyPressNative("51");
selenium.keyPressNative("52");
selenium.keyPressNative("53");
selenium.keyPressNative("54");

Есть ли более оптимальные способы вставки значения в такого рода поле?



#72241 Создание Скриншотов в случае найденного бага

Отправлено автор: egors 16 ноября 2009 - 12:24 в Selenium - Functional Testing

Доброго времени суток:)

Подскажите пожалуйста:

Каким способом лучше всего создавать скриншоты (CaptureScreenshot) в случае найденного бага, ошибки, или отказа системы (не найден объект, отрицательный результат функции проверки и т.д.)?

Использую Selenium RC + Eclipse + Java.



#72251 Создание Скриншотов в случае найденного бага

Отправлено автор: egors 17 ноября 2009 - 08:04 в Selenium - Functional Testing

Внедряю, Спасибо за советы!:)



#72297 Создание Скриншотов в случае найденного бага

Отправлено автор: egors 18 ноября 2009 - 13:33 в Selenium - Functional Testing

Нашел еще такую штуку:)

Fest - Swing



#72308 Ввод значения в поле на Internet Explorer

Отправлено автор: egors 18 ноября 2009 - 16:27 в Selenium - Functional Testing

Доброго времени суток:)

Столкнулся со следующей ситуацией:

1. При воспроизведении теста на Iexplore, выполняется

selenium.type("password", "123456");

2. Появляется алерт "Операция вставки недопустима", так как существует Js метод на проверку вставки.
3. Не получается и с помощью:

selenium.setExtensionJs("document.getElementsByName('password')[0].value = '123456'");

Обхожу только так:

selenium.focus("password");
selenium.keyPressNative("49");
selenium.keyPressNative("50");
selenium.keyPressNative("51");
selenium.keyPressNative("52");
selenium.keyPressNative("53");
selenium.keyPressNative("54");

Есть ли более оптимальные способы вставки значения в такого рода поле?

Тут несколько вариантов:
1) Гасить алерт, хотя я не в курсе, останется ли введенный пароль или нет
2) Покрутить настройки Эксплорера, которые могли бы разрешить данную операцию. Так или иначе с этим придется иметь дело. Эксплорер со своими секьюрными заморочками даже в iehta лубит поняпрягать, что только и остается постоянно фиксировать настройки браузера



Пароль не остается и настройки не позволяют. Буду использовать нативы:)
Спасибо.

P.S.

Заметил, что на эксплорере дольше выполняются селениумовские методы. Возможно как-то уменьшить время выполнения?



#72422 Доступ к объектам в PopUp окне

Отправлено автор: egors 24 ноября 2009 - 10:20 в Selenium - Functional Testing

Спасибо за совет)

Применил:
selenium.waitForCondition("selenium.isElementPresent('card_personal_info_login')", TIMEOUT);

Работает

Доброго дня

Столкнулся со следующей ситуацией:

1. Выполняю:
selenium.click("//input[@value='Карточка клиента']"); // Открываем окно
selenium.waitForPopUp("Карточка клиента1009521", "30000"); // Ждем
selenium.selectWindow("Карточка клиента1009521"); // Выбираем

2. Далее выполняется Ajax запрос, добавляются данные на страницу. Пытаюсь проверить значение полученного объекта:
assertEquals("atrusfcfc3821", selenium.getValue("card_personal_info_login"));
Выдает:
ERROR: card_personal_info_login not found

При этом без ошибок выполняется:
1. Проверка заголовка:
assertEquals("Клиент atrusfcfc3821", selenium.getTitle());

2. Переключение вкладок находящихся вверху страницы:
selenium.click("//div[@id='card_personal_info']/div/div/div");
selenium.click("//div[@id='card_pay']/div/div/div");

но к объектам на вкладке, доступа всеравно нет.

Вставлял selenium.windowFocus(); не помогает.

Каким способом возможно получить доступ к объектам?

Может для начала подождать, пока появится объект card_personal_info_login , прежде чем вызывать selenium.getValue("card_personal_info_login") ?
В основном проблемы возникают, когда контент загрузился не сразу и в момент вызова того или иного метода селениума объекта еще нет.




#72415 Доступ к объектам в PopUp окне

Отправлено автор: egors 24 ноября 2009 - 08:53 в Selenium - Functional Testing

Доброго дня

Столкнулся со следующей ситуацией:

1. Выполняю:
selenium.click("//input[@value='Карточка клиента']"); // Открываем окно
selenium.waitForPopUp("Карточка клиента1009521", "30000"); // Ждем
selenium.selectWindow("Карточка клиента1009521"); // Выбираем

2. Далее выполняется Ajax запрос, добавляются данные на страницу. Пытаюсь проверить значение полученного объекта:
assertEquals("atrusfcfc3821", selenium.getValue("card_personal_info_login"));
Выдает:
ERROR: card_personal_info_login not found

При этом без ошибок выполняется:
1. Проверка заголовка:
assertEquals("Клиент atrusfcfc3821", selenium.getTitle());

2. Переключение вкладок находящихся вверху страницы:
selenium.click("//div[@id='card_personal_info']/div/div/div");
selenium.click("//div[@id='card_pay']/div/div/div");

но к объектам на вкладке, доступа всеравно нет.

Вставлял selenium.windowFocus(); не помогает.

Каким способом возможно получить доступ к объектам?



#72199 Использование Test Data

Отправлено автор: egors 13 ноября 2009 - 10:07 в Selenium - Functional Testing

Помогите советом:)

Ситуация следующая:
1. Существует тест-кейс, в ходе которого генерируется значение логина.
2. Сгенерированный логин необходимо использовать в другом тест-кейсе.

Как поступить в данной ситуации?
Сохранить данное значение в отдельный тестовый файл с помощью Java методов, и потом извлекать его... Или есть более простые способы?

Использую:
SeleniumRC + TestNg + Eclipse + Java.

Зависимость тесткейсов друг от друга не очень хорошая практика. На мой взгляд, лучше иметь заранее сгенеренные тестовые данные, которые используются одним или большим количеством тестов.

Но если брать ваш случай, то можно и так:
System.setProperty("my.generated.login", myGeneratedLogin) - запоминаем
System.getProperty("my.generated.login") - вспоминаем

Также хорошей практикой является использование recovery-функционала, который мог бы подготовить нужные данные и потом зачистить после себя всё, что было создано во время теста.

В данном примере можно посмотреть на функционал, который мог бы удалять и создавать новые учетные записи, для которых генерируется логин. А дальше сценарий такой: если уже есть такая запись, то просто используем ее, а если нет, то создаем. Если нужно, чтобы запись была новой, то существующую запись просто можно удалить, после чего создать новую.

В общем много вариантов. Да, это требует больше времени на выполнение, но при этом это повышает стабильность.



Понял, спасибо!:)



#72099 Использование Test Data

Отправлено автор: egors 09 ноября 2009 - 14:18 в Selenium - Functional Testing

Помогите советом:)

Ситуация следующая:
1. Существует тест-кейс, в ходе которого генерируется значение логина.
2. Сгенерированный логин необходимо использовать в другом тест-кейсе.

Как поступить в данной ситуации?
Сохранить данное значение в отдельный тестовый файл с помощью Java методов, и потом извлекать его... Или есть более простые способы?

Использую:
SeleniumRC + TestNg + Eclipse + Java.



#72867 Как проверить что кнопка не активна?

Отправлено автор: egors 17 декабря 2009 - 12:03 в Selenium - Functional Testing

Доброго времени суток)

Как с помощью SeleniumRC проверить, что кнопка не активна?

Спасибо



#72342 Https + Firefox + SeleniumRC

Отправлено автор: egors 19 ноября 2009 - 14:17 в Selenium - Functional Testing

Доброго дня:)

Наверно, многие сталкивались постоянным подтверждением сертификата безопасности при воспроизведении тестов на файрфоксе.

Как можно решить данную проблему?

Спасибо.



#72202 SeleniumRc + TestNg

Отправлено автор: egors 13 ноября 2009 - 10:42 в Selenium - Functional Testing

Доброго времени суток:)

Нужен совет, ситуация:

1. Существует класс ClientBvi, в котором:
- есть два теста, помечены @Test;
- также методы setup() и teardown(), помечены @BeforeTest и @AfterTest:

public void setup() {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://mylink.org/");
selenium.start();
}
public void tearDown(){
selenium.stop();
}

2. testing.xml выглядит следующим образом:

<!DOCTYPE suite SYSTEM "http://testng.org/te...estng-1.0.dtd">
<suite name="ClientBvi">
<test verbose="2" name="Tests" annotations="JDK">
<classes>
<class name="ClientBvi"/>
</classes>
</test>
</suite>

Необходимо чтобы перед выполнением второго теста опять загружался стартовый URL "http://mylink.org/", или браузер заново открывался со стартовым URl.
На данный момент после окончания первого сразу выполняется второй, по логике BeforeTest и AfterTest не выполняются.
Что добавить, исправить?:)



#73497 Доступ к свойствам объекта

Отправлено автор: egors 27 января 2010 - 08:09 в Selenium - Functional Testing

Большое Спасибо:)



#73456 Доступ к свойствам объекта

Отправлено автор: egors 26 января 2010 - 08:21 в Selenium - Functional Testing

Доброго времени суток:)

Возможно ли, используя Selenium RC, проверить цвет объекта?

Код:
<label id="confpass:lbl" class="err"><img alt="*" src="pic/small_star.png">&nbsp;Повторите пароль</label>

label.err {
color:red


Спасибо)



#72206 SeleniumRc + TestNg

Отправлено автор: egors 13 ноября 2009 - 11:27 в Selenium - Functional Testing

Доброго времени суток:)

Нужен совет, ситуация:

1. Существует класс ClientBvi, в котором:
- есть два теста, помечены @Test;
- также методы setup() и teardown(), помечены @BeforeTest и @AfterTest:

public void setup() {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://mylink.org/");
selenium.start();
}
public void tearDown(){
selenium.stop();
}

2. testing.xml выглядит следующим образом:

<!DOCTYPE suite SYSTEM "http://testng.org/te...estng-1.0.dtd">
<suite name="ClientBvi">
<test verbose="2" name="Tests" annotations="JDK">
<classes>
<class name="ClientBvi"/>
</classes>
</test>
</suite>

Необходимо чтобы перед выполнением второго теста опять загружался стартовый URL "http://mylink.org/", или браузер заново открывался со стартовым URl.
На данный момент после окончания первого сразу выполняется второй, по логике BeforeTest и AfterTest не выполняются.
Что добавить, исправить?:)

Попробуйте в аннотации к before-методу добавить флаг, что запускать его надо каждый раз, когда запускается тест. То есть что-то типа:

@BeforeMethod(alwaysRun = true)


Получилось, Большое спасибо!:)