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

sawoy

Регистрация: 04 мар 2011
Offline Активность: 18 окт 2013 12:05
-----

#116365 Сохранение куки во время работы Firefox

Написано sawoy 28 марта 2013 - 09:38

Немного уточню ответ @player1:

Даже если вы указываете уже существующий профиль FF, то,
как при использовании webdriver в local так и remote режимах,
профиль создается во временной папке на основе переданного Вами.

Соответственно при сохранении cookies и т.п. они сохраняются в этом временном профиле, а не в Вашем переданном.
  • 1


#115880 Получение text object.

Написано sawoy 18 марта 2013 - 00:11

Привет.

Можно попробовать найти 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
  • 1


#107395 Selenium Grid Couldn't proxy to http://www.****.ru/ because host n

Написано sawoy 08 июля 2012 - 13:03

Появляются из-за того, что кто-то или что-то использует внутренний прокси селениум ноды для доступа в интернет.

Перезапустите ноду с параметром -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 ?
  • 1


#105513 Изъятие данных из ячейки таблицы. Java

Написано sawoy 15 мая 2012 - 00:41

Вот суммарная инфа по этому методу:

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.

Другой вариант решения (если проблема именно в "сервер начнет запускаться, но не успеет до конца это сделать") - использовать ожидание:
* наивное
java -jar selenium-server.jar;
wait 30s; # ну уж за 30 секунд он запуститься
mono testsite.exe;
* на основе циклической проверки какого-либо события, например ответа на запрос, сообщения в логе и т.д.

Но я бы посоветовал разобраться в причине и написать отдельный нормальный инит скрипт для запуска и остановки Selenium. Или поискать готовый.
  • 1


#103569 Ошибка при запуске FirefoxWebDriver

Написано sawoy 05 апреля 2012 - 08:48

1. Выясняете - какой процесс использует этот порт:

netstat -an -p TCP -bo

Если установлен grep, то:

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
  • 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.

При сохранении (скачивании) файла с определенным расширением (обработчиком) возможна проблема, в том что файл исполняется вместо сохранения или наоборот.
  • 3