Трудности у QA при работе с Selenium явные и очевидные: иногда мешают, или хочется спать, или голод, безработица (нам не грозит, но призрак по Европе продолжает бродить, поэтому…).
Пока еще не все заявленные разработчиками возможности в тестировании на андроид возможна. Xpath работает, а по css локаторы определять еще не получается. Ужас.
На реальном устройстве тесты бегают шустрее, чем на эмуляторе.
Чтобы писать тесты для мобильных устройств рекомендуется использовать Firefox с приблудой для смены user-agent. Да, это очень важно. Например, сайт гугла подстраивается на экране на лету под мобильную версию, и уже в ней Fierbug-ом определяем локаторы.
Еще в FireBug рекомендуется сунуть плагин FireChange, позволяет отслеживать линии при работе c AJAX.
Также помогает консоль в Firebug.
Возможность тестировать в разных браузерах — есть возможность, но поскольку браузеры работают с JavaScript по-разному, то и пробелмы неминуемы. Улучшенный API «развязывает вам руки, вы уже не тестировщики, а полноценные программисты».
У кого еще руки в узел завязаны? Развязывайтесь.
Цитата:
«Можем попробовать тестировать Flash и SilverLight».
Цитата:
«Плюсом Selenium является отсутствие каких-либо отчетов — их можно выводить самостоятельно, по параметрам, которые нужны именно нам».
Можно делать скриншоты и локаторшоты (это еще что такое?).
// Можно вешать человека на проекты, или проекты вешать на человека?
Подсказка о возможных проблемах с JavaScript:
- тесты выполняются с задержками (типа, эмулируем тормознутого живого пользователя).
- в какой-то момент было принято решение о том, что задержки нафиг, бо от них увелиичивается время
- прохождения тестов до нескольких часов. Убрали. Тесты завалились. Ввыяснилось — JavaScript не успевал загрузится (например, под кнопки submit). waitForPageToLoad не помогает в этом деле полностью.
- Универсальное решение проблемы — вставлять флаги.
// Что еще за флаги? TODO Разобраться.
Недостатки Selenium (есть и такое)
- Нативные окна бразуера. Нет возможности с ними работать, ограничение JavaScript.
- http аутентификация (решаема, впрочем)
- flash и silverlight — напрямую невозможно, но можно через JS. Впрочем, тестировать такие приложения с Selenium замороченно, все равно скатываешься к юнит-тестам, чтобы обойти препоны.
- selenium работает с браузером асинхронно.
// В раздаточных пакетах были игрушки — лего-палочки. Народ на столах с этими штучками заигралсо.
Проблемы с кросс-браузерным тестированием
- IE падает без причины. Подозрение на вылетаемость JS, но доказательств нет.
- Медленная работа с Xpath. Решение проблемы — обратиться к программистам, чтобы объекты идентифицировать не по классам, а по id.
- Рассинхронизация работы между Xpath и CSS.
Как работать с iframe
суть:
- установить фокус
- кликнуть по IFrame
- вставить текст
не работает:
- selenium.type
работает
- selenium.click(‘IframeID’)
- selenium.keyPressNative
Здравствуйте. Подскажите решение следующей проблемы. На странице имеется iframe внутри которого находится flash приложение. Как определить, что данное приложение было загружено полностю? К сожалению на iframe не могу навешать проверку onload …
НравитсяНравится
В iframe вроде бы подгружается полноценная страница, нет?
НравитсяНравится
Совершенно верно — полноценная страница.
НравитсяНравится
Вот и откройте ее в браузере отдельно.
НравитсяНравится
Здравствуйте. Подскажите пожалуйста вот в каком вопросе. Я использую selenium server + selenium.php. и мне очень нужно изменить user_agent, но в selenium.php нет такого метода, как быть не знаю? очень надо. быть может вы могли бы что-то подсказать.
НравитсяНравится
Не, я не знаю.
НравитсяНравится
Есть к примеру 3 строки по 4 тумбочки и 4 строка в которой 3 тумбочки, чудо рандом выбирает 3 строку 2 тумбочку — поставило галочку, потом снова выбирает 4 строку 4 тумбочку и тут фейл так как ее нету, желаемое действие — это оно сначало проверяет есть ли эта тумбочка, а потом добавляет, либо повторяет цикл рандома что бы выбрало существующий елемент.
НравитсяНравится
Без кода все слишком абстрактно.
Сдаюсь.
НравитсяНравится
{code}
storeElementPresent
//*[@class=’search-conten’]/div[10]/div[4]/input
line8
storeVisible
//*[@class=’search-conten’]/div[10]/div[4]/input
line8
storeEval
if(${line1}==true) storedVars[‘labelCc1′]=’pos1’; else storedVars[‘labelCc1′]=’neg1’;
{code}
НравитсяНравится
Я имел ввиду — код приложения.
НравитсяНравится
И снова я со своим вопросом, Алексей, need help! Такая ситуация: есть тумбочки(по 4 штуки на строке) мне нужно проверить полностью ли заполнены эти строки макс кол которых 8 ( в каждой ли строке по 4 фотки) и выбрать из существующих фоток те которые войдут в галерею, storeVisible для проверки существования элемента не помог(( так как при его отсутствии останавливается.
НравитсяНравится
Перечитываю вопрос, перечитываю, и иногда кажется, что я почти понял, о чем идет речь, но снова перечитываю и понимаю, что заблуждался.
Тумбочки — превью, это ок.
Остальное — абстрактная лошадка в тумане.
НравитсяНравится
Хай, Алексей, можете помочь в таком вопросе, при попытке сделать скриншот такого урла:
http://www.animalsandearth.com/ru/search/tags/query/African%20Bullfrog#1#images#viewed##
появляется такая ошибка:
Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIFileOutputStream.init]
Вот код который использую:
windowMaximize
loadTestData file:///D:\Se\forAlexeyData.xml
while !testdata.EOF()
nextTestData
open ${link}
storeEval storedVars[‘link’].replace(‘http://’,»); url
captureEntirePageScreenshot d:\Se\ss\${url}.png background=#CCFFDD
endWhile
forAlexeyData.xml
НравитсяНравится
Не, не знаю.
НравитсяНравится