- Форум тестировщиков
- → Просмотр профиля: Репутация: sawoy
Статистика
- Группа: Members
- Сообщений: 51
- Просмотров: 6 234
- Статус: Новый участник
- Возраст: 40 лет
- День рождения: Сентябрь 9, 1983
-
ФИО
Alex Savchuk
-
Пол
Мужчина
#116365 Сохранение куки во время работы Firefox
Написано sawoy 28 марта 2013 - 09:38
Немного уточню ответ @player1:
Даже если вы указываете уже существующий профиль FF, то,
как при использовании webdriver в local так и remote режимах,
профиль создается во временной папке на основе переданного Вами.
Соответственно при сохранении cookies и т.п. они сохраняются в этом временном профиле, а не в Вашем переданном.
Даже если вы указываете уже существующий профиль FF, то,
как при использовании webdriver в local так и remote режимах,
профиль создается во временной папке на основе переданного Вами.
Соответственно при сохранении cookies и т.п. они сохраняются в этом временном профиле, а не в Вашем переданном.
#115880 Получение text object.
Написано sawoy 18 марта 2013 - 00:11
Привет.
Можно попробовать найти text nodes c помощью xpath:
но это решение не кроссбраузерное, например в ие9 не работает.
Другой вариант - найти div с помощью getElementById или подобного
и обойти у него все childNodes и т.д. Это повлечет за собой собственную реализацию
кроссбраузерного js кода.
Следующая итерация - загрузка какой-либо js библиотеки, реализующей поиск элемента,
и ее использование.
Более корректное и простое решение, по-моему, это, используя selenium, найти элемент,
получить его текст и распарсить, зная то, что каждый кусок начинается с channel.
Желательно было бы узнать требование или постановку задачи,
которая привела к необходимости доступа к text node.
Можно попробовать найти text nodes c помощью xpath:
js = """ var elements = document.evaluate("//div[@id='hide_block253']/text()", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); var r = []; for (var i = 0; i < elements.snapshotLength; i++) { r.append(elements[i].nodeValue); } return r; """ driver.execute_script(js)
но это решение не кроссбраузерное, например в ие9 не работает.
Другой вариант - найти div с помощью getElementById или подобного
и обойти у него все childNodes и т.д. Это повлечет за собой собственную реализацию
кроссбраузерного js кода.
Следующая итерация - загрузка какой-либо js библиотеки, реализующей поиск элемента,
и ее использование.
Более корректное и простое решение, по-моему, это, используя selenium, найти элемент,
получить его текст и распарсить, зная то, что каждый кусок начинается с channel.
Желательно было бы узнать требование или постановку задачи,
которая привела к необходимости доступа к text node.
- 1
#108437 Webdriver (C#) + Grid: Некорректно работает SendKeys
Написано sawoy 08 августа 2012 - 20:48
Попробуйте локализовать проблему - покореженные данные приходят на ноду или проблема именно при выполнении теста в драйвере. Для этого можно использовать -debug параметр при запуске ноды для включения логирования.
Также попробуйте включить или отключить nativeEvents: через capability (https://code.google....redCapabilities) или webdriver.enable.native.events
(https://code.google....i/FirefoxDriver).
Кстати, повторяется ли проблема при параллельном запуске не через грид, а локально?
В общем, лучше всего выделить минимальный по размеру кода и используемым библиотекам тест, который повторяет проблему
и создать баг в https://code.google....ium/issues/list
Также попробуйте включить или отключить nativeEvents: через capability (https://code.google....redCapabilities) или webdriver.enable.native.events
(https://code.google....i/FirefoxDriver).
Кстати, повторяется ли проблема при параллельном запуске не через грид, а локально?
В общем, лучше всего выделить минимальный по размеру кода и используемым библиотекам тест, который повторяет проблему
и создать баг в https://code.google....ium/issues/list
- 1
#107395 Selenium Grid Couldn't proxy to http://www.****.ru/ because host n
Написано sawoy 08 июля 2012 - 13:03
Появляются из-за того, что кто-то или что-то использует внутренний прокси селениум ноды для доступа в интернет.
Перезапустите ноду с параметром -debug. После этого в лог будет выводиться все информация об обрабатываемых запросах.
Это поможет отследить на какие сайты заходят, насчет того с какого IP посылаются запросы неуверен.
У меня для локальной тестовой ноды показывается что-то типа:
Перезапустите ноду с параметром -debug. После этого в лог будет выводиться все информация об обрабатываемых запросах.
Это поможет отследить на какие сайты заходят, насчет того с какого IP посылаются запросы неуверен.
У меня для локальной тестовой ноды показывается что-то типа:
16:20:55.901 DEBUG - new HttpConnection: Socket[addr=/0:0:0:0:0:0:0:1,port=54429,localport=5555]
16:20:55.902 DEBUG - REQUEST from SocketListener0@0.0.0.0:5555:
GET http://mail.ru/ HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: ru
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Host: mail.ru
- 1
#105818 Проблемы с OperaDriver
Написано sawoy 21 мая 2012 - 21:04
C# test code -> C# webdriver client code -> JS webdriver code -> Java OperaDriver code.
Примерно так я представляю себе механизм работы webdriver в Вашем случае.
В указанной теме первые 2 слоя были на Java, что давало удобный доступ к public Enum OperaIntervals из Java OperaDriver code.
В Вашем же случае, мне кажется, проще будет cкомпилировать Operadriver с нужными значениями и заменить получившимся jar файлом то, что используется Webdriver.
Но не уверен, что это будет так уж просто, быть может проще отказаться от тестирования в Опере или перейти на Java ?
Примерно так я представляю себе механизм работы webdriver в Вашем случае.
В указанной теме первые 2 слоя были на Java, что давало удобный доступ к public Enum OperaIntervals из Java OperaDriver code.
В Вашем же случае, мне кажется, проще будет cкомпилировать Operadriver с нужными значениями и заменить получившимся jar файлом то, что используется Webdriver.
Но не уверен, что это будет так уж просто, быть может проще отказаться от тестирования в Опере или перейти на Java ?
- 1
#105513 Изъятие данных из ячейки таблицы. Java
Написано sawoy 15 мая 2012 - 00:41
Вот суммарная инфа по этому методу:
Ну и возвращаясь к вопросу:
Есть 2 варианта решения, как я понимаю:
1. использовать относительную, а не абсолютную адресацию, например "//body/div[6]/div[3]/div/div/div[2]/div/table.0.2"
2. использовать "xpath=/html/body/div[6]/div[3]/div/div/div[2]/div/table.0.2"
getTable("<tableLocator>.<rowIndex>.<columnIndex>")
<rowIndex> - индекс строки, отсчет с нуля.
<columnIndex> - индекс колонки, отсчет с нуля.
<tableLocator> - локатор таблицы в формате [<locatorType>=]<locatorValue>.
<locatorType> ::= "xpath" | "css" | "link" | "sizzle" | "implicit" | "identifier" | "id" | "name" | "dom" | "stored" | "webdriver" | "class" | "alt" | "css" | "ui".
Если в <tableLocator> нет <locatorType>, то либо используется вариант "implicit" либо просто поиск происходит по определенной последовательности (вроде бы проверяется "//" в начале и что-то еще), в зависимости от.
Соответственно, по типам:
* "xpath" - поиск по XPATH = <locatorValue>;
* "css" - поиск по CSS = <locatorValue>;
* "link" - если не ошибаюсь, поиск по A тегу с текстом, содержащим <locatorValue>;
* "sizzle" - вроде как cиноним CSS;
* "implicit" - по след. алгоритму:
** если <locatorValue> начинается с "//", то поиск по XPATH = <locatorValue>,
** если <locatorValue> начинается с "document.", то поиск по DOM = <locatorValue>,
** иначе поиск как в "identifier" варианте;
* "identifier" - поиск сначала по ID = <locatorValue>, затем по NAME = <locatorValue>;
* "id" - поиск по ID = <locatorValue>;
* "name" - поиск по NAME = <locatorValue>;
* "dom" - поиск по DOM = <locatorValue>;
* "stored" - поиск в спец. кеше на уровне JS;
* "webdriver" - ? (вообще не понимаю что это);
* "class" - поиск по CLASS = <locatorValue> (вроде как по полному соответствию);
* "alt" - поиск по ALT = <locatorValue> (тоже соответствие);
* "ui" - поиск в UIMap элементов с <locatorValue> (UIMap - это подготовленная "карта" страницы, описывающая основные элементы, их адресацию и иерархию. <locatorValue> в таком случае может быть чем-то типа "UserInfo->Addresses->City" или намного-намного сложнее :) ).
Там, где <locatorValue> адресует коллекцию, стараются возвратить первый найденный элемент.
Часть из типов - из IDE, часть - из v1 и v2.
Ну и возвращаясь к вопросу:
Xpath выглядит так "/html/body/div[6]/div[3]/div/div/div[2]/div/table/tbody/tr/td[2]"
судя по всему номера есть. Но обратиться не получается..
Есть 2 варианта решения, как я понимаю:
1. использовать относительную, а не абсолютную адресацию, например "//body/div[6]/div[3]/div/div/div[2]/div/table.0.2"
2. использовать "xpath=/html/body/div[6]/div[3]/div/div/div[2]/div/table.0.2"
- 1
#104693 Запуск Selenium server.jar из командной строки вместе с тестом
Написано sawoy 21 апреля 2012 - 19:56
Интересно. А что в логе /path/to/log/file ?
Попробуй запустить команду без nohup.
Другой вариант решения (если проблема именно в "сервер начнет запускаться, но не успеет до конца это сделать") - использовать ожидание:
* наивное
Но я бы посоветовал разобраться в причине и написать отдельный нормальный инит скрипт для запуска и остановки Selenium. Или поискать готовый.
Попробуй запустить команду без nohup.
Другой вариант решения (если проблема именно в "сервер начнет запускаться, но не успеет до конца это сделать") - использовать ожидание:
* наивное
java -jar selenium-server.jar; wait 30s; # ну уж за 30 секунд он запуститься mono testsite.exe;* на основе циклической проверки какого-либо события, например ответа на запрос, сообщения в логе и т.д.
Но я бы посоветовал разобраться в причине и написать отдельный нормальный инит скрипт для запуска и остановки Selenium. Или поискать готовый.
- 1
#103569 Ошибка при запуске FirefoxWebDriver
Написано sawoy 05 апреля 2012 - 08:48
1. Выясняете - какой процесс использует этот порт:
2. Закрываете процесс, используя выведенный PID и Task Manager.
Это для Windows XP.
Если установлен grep, то:netstat -an -p TCP -bo
netstat -an -p TCP -bo | grep -i 45000
2. Закрываете процесс, используя выведенный PID и Task Manager.
Это для Windows XP.
- 1
#97690 Сверка данных c SQL в TestComplete 8
Написано sawoy 25 ноября 2011 - 05:43
Вот ломаю голову над тем, как актуализировать данных из SQL в "TEST"
По идее, вызовы DBTable.Check или DBTable.Compare могут обновлять данные в DBTable.
если установлена опция, указывающая это делать.
Прочитать про это можно здесь http://smartbear.com...warticle/11218/
Возможно Вам нужна не DBTable, а DB Table variable, которая просто обеспечивает доступ к внешним данным?
Посмотрите - http://smartbear.com...warticle/11860/
- 1
#95591 http get в testcomplete
Написано sawoy 17 октября 2011 - 13:33
Привет.
Можно попытаться "скачать" что-нибудь по указанному адресу (естественно, нужно адаптировать пример к ситуации):
http://smartbear.com...icle/8999/?st=0
Можно попытаться "скачать" что-нибудь по указанному адресу (естественно, нужно адаптировать пример к ситуации):
http://smartbear.com...icle/8999/?st=0
- 1
#90559 Шаблоны Тестирования: "Операции Save As, Open.."
Написано sawoy 01 июля 2011 - 06:04
Для внешних (Shared folder и Mapped disk) можно проверить что произойдет при сохранении/открытии файла:
* если машина физически недоступна,
* если администратор закрывает форсированно shared folder или прерывает сессию.
Для Windows можно проверить:
* прямые, обратные и "смешанные" слэшы
* 8.3 формат
* сложную смесь . и ..
* \\.\ пути
* \\?\ пути
* \Device\Xxx пути (специфично для некоторых приложений)
* что-то типа C:x\y.z
Также можно проверить сохранение/открытие файла с запрещенными в OS именами. К примеру, NUL.
При сохранении (скачивании) файла с определенным расширением (обработчиком) возможна проблема, в том что файл исполняется вместо сохранения или наоборот.
* если машина физически недоступна,
* если администратор закрывает форсированно shared folder или прерывает сессию.
Для Windows можно проверить:
* прямые, обратные и "смешанные" слэшы
* 8.3 формат
* сложную смесь . и ..
* \\.\ пути
* \\?\ пути
* \Device\Xxx пути (специфично для некоторых приложений)
* что-то типа C:x\y.z
Также можно проверить сохранение/открытие файла с запрещенными в OS именами. К примеру, NUL.
При сохранении (скачивании) файла с определенным расширением (обработчиком) возможна проблема, в том что файл исполняется вместо сохранения или наоборот.
- 3
- Форум тестировщиков
- → Просмотр профиля: Репутация: sawoy
- Политика Конфиденциальности
- Правила форума ·