А как подключить библиотеку, которая лежит на машине, где тесты запускаются, в файлике? Причем там такая нехилая либа, на 125 кБ весом
- Форум тестировщиков
- → Публикации krohotin
9 публикаций создано krohotin (учитываются публикации только с 26 апреля 2023)
Отправлено автор: krohotin 01 марта 2016 - 12:06 в Selenium - Functional Testing
А как подключить библиотеку, которая лежит на машине, где тесты запускаются, в файлике? Причем там такая нехилая либа, на 125 кБ весом
Отправлено автор: krohotin 01 марта 2016 - 07:39 в Selenium - Functional Testing
Selenium позволяет запустить на странице браузера js-скрипт, выдернуть таким образом например информацию которую не получить средствами самого selenium. Много встречал разных примеров, но нигде не видел такого, чтобы в js-скрипте использовались сторонние библиотеки. Подскажите пожалуйста, возможно ли в принципе запуск скрипта со сторонними библиотеками? В идеале - загружаемыми из js-файла
Отправлено автор: krohotin 26 января 2016 - 11:05 в Selenium - Functional Testing
Есть приложение (в разработке) для Android, сделанное на базе Crosswalk + Cordova, то бишь по сути просто браузерный движок + приложение на HTML + CSS + Javascript. Вопрос - можно ли автоматизировать тестирование такого приложения средствами Selenium? Нужен ли для этого какой-то специальный драйвер для запуска приложения? Тесту буду писать на Python (хотя думаю что тут разницы никакой на чем из писать)
Отправлено автор: krohotin 17 ноября 2015 - 21:13 в Selenium - Functional Testing
Пичалька((( Значит таки буду PIL-ом делать
Отправлено автор: krohotin 17 ноября 2015 - 16:33 в Selenium - Functional Testing
Именно скриншот элемента. Раз у объекта WebElement-а есть метод снятия скриншота (даже 3 - в base64, в png и в просто в файл), логично предположить что должен делаться снимок именно элемента.
Способ через скриншот страницы и вырезать PIL-ом нужный кусок рассматривал и реализовывал, но хотелось бы также разобраться в оригинальном, так сказать исходном способе
Отправлено автор: krohotin 17 ноября 2015 - 08:14 в Selenium - Functional Testing
Простейший код:
from selenium import webdriver
p = webdriver.Firefox()
p.get("http://localhost:8000")
h = p.find_elements_by_css_selector("html body ul li a")[1]
h.screenshot("file.png")
(http://localhost:8000 - маленький локальный сервер на Питоне, в 4 строчки, чисто для тренировки и тестирования наработок всяких )
Все успешно проходит до h.screenshot("file.png"), дальше вываливается ошибка:
Traceback (most recent call last):
File "C:/Users/KKShilov/PycharmProjects/test2/_helpmetods.py", line 46, in <module>
h.screenshot("file.png")
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webelement.py", line 404, in screenshot
png = self.screenshot_as_png
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webelement.py", line 391, in screenshot_as_png
return base64.b64decode(self.screenshot_as_base64.encode('ascii'))
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webelement.py", line 381, in screenshot_as_base64
return self._execute(Command.ELEMENT_SCREENSHOT)['value']
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webelement.py", line 453, in _execute
return self._parent.execute(command, params)
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 201, in execute
self.error_handler.check_response(response)
File "C:\Python34\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 102, in check_response
value = json.loads(value_json)
File "C:\Python34\lib\json\__init__.py", line 318, in loads
return _default_decoder.decode(s)
File "C:\Python34\lib\json\decoder.py", line 343, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python34\lib\json\decoder.py", line 361, in raw_decode
raise ValueError(errmsg("Expecting value", s, err.value)) from None
ValueError: Expecting value: line 1 column 1 (char 0)
В чем может быть причина и как это исправить/заставить работать?
Отправлено автор: krohotin 20 октября 2015 - 20:01 в Про тестирование обо всём подряд
Ну во-первых так учу заодно Python) Во-вторых когда начал писать, не нашел то что меня бы заинтересовало и удовлетворило. А теперь дело вертится, тесты в фарш месятся
Отправлено автор: krohotin 19 октября 2015 - 21:44 в Про тестирование обо всём подряд
P.S. Исходный код выложу в открытый доступ когда приведу его в хоть сколько-то божеский вид, или вышлю лично просящим на почту с разъяснениями что, где и как. В ближайшее время выложу пример набора тестов и лога на его основе
Отправлено автор: krohotin 19 октября 2015 - 21:41 в Про тестирование обо всём подряд
Доброй ночи (ибо на часах уже немного за полночь), друзья-товарищи тестировщики!
Работаю веб-тестировщиком в одном небольшом и относительно молодом (2 года) стартапе. В тестировании 3-й год, в вебе - 5 месяцев. Занимаюсь преимущественно ручным тестированием (проект молодой, все время новые плюшки-финтифлюшки, переделки и редизайны), но стоит цель создать набор автотестов. Писать буду на 3-м питоне (сам сервис на нем написан, поэтому начальство велело на нем). Покудова с автотестами не торопят, начал изучать selenium, писать пробные тесты. Сразу встретил для себя несколько моментов, которые меня мало вдохновили - длинные названия методов поиска селекторов и их разнообразие (java в этом плане меня более воодушевляет, findElement/findsElement и By-локаторы) + прописывание по всему коду методов логирования (куда же в тестах без логов-то!) + всякие мелочи (уже забыл какие сам). Полистав интернет, наткнулся на идию обертки для Selenium, и понеслась...
В результате на руках имею жутко черновую (0.1) версию своей собственной обертки DriverPlus. Название - отсылка к другой оболочке WebDriver Plus (из ее кода почерпнул некоторые идеи). На данный момент реализованы следующие моменты:
- универсальные методы find и finds, принимающие на вход объекты-селекторы с проверкой входных данных
- селекторы, задаваемые объектами, которые помимо типа локатора и его значения содерждат в себе название элемента ( id("auto_botton", "кнопка авторизации") )
- несколько типов дополнительных селекторов на основе xpath
- автоматическое логирование всех методов. Нашел элемент - в лог попала инфа как называется элемент, какой тип локатора, локатор... или предупреждение если найдено несколько элементов... или ошибку возбудит и напишет что не нашел такого. Кликнул кнопку - аналогичная фигня. Нашел мночго чекболксов и по циклу их все чекаешь - запишет для каждого действие и еще укажэет какой по счету чекбокс ты чекнул. Плюс логирует время выполнения каждого метода (оценка производительности). Плюс автоматически определеяет файл, функцию и строку вызова метода
Может кому-то покажется излишним все это (мне самому иногда так кажется, хехе), но кому-то возможно и будет интересно-полезно. Помимо прочего, работая над оболочкой изучаю язык, учусь правильно, красиво и эффективно писать код. Однако есть еще куча идей чего допилить, додедать, улучшить, а и опыта чертовски мало, и лень иногда пробивает.
Собственно суть - есть ли у кого-либо из прочитавших всю эту ахинею интерес для изучения? Нужна критика (но конструктивная, с фактами и примерами), нужны люди которые помогут улучшить мою идею, развить ее, усовершенствовать... или те кто смогут убедить в глупости, бессмысленности затеи)))
Так или иначе, жду ваших мнений
Community Forum Software by IP.Board Русификация от IBResource
Лицензия зарегистрирована на: Software-Testing.Ru