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

Практикум по тест-дизайну 2.0
онлайн, начало 29 ноября
Тестирование REST API
онлайн, начало 18 ноября
Автоматизатор мобильных приложений
онлайн, начало 27 ноября
Selenium WebDriver: полное руководство
онлайн, начало 15 ноября

SergeyQA

Регистрация: 27 янв 2018
Offline Активность: 07 апр 2019 11:22
*----

Мои сообщения

В теме: Одна такая мегаглавная проблема Selenium Webdriver, Selenium - отстой?

11 Декабрь 2018 - 16:26

Коллеги, всем здравствуйте!
Слишком много времени потерял на решение проблемы. Увидел, что тема очень похожая и решил напиать.
Проблема такая: вебдрайвер не может найти на странице элемент, если функция отрабатывает не в первый раз. 
Поясню.
Есть страница интернет магазина с категориями товаров: https://www.auchan.r.../kosmetika.html
На этой странице есть подкатегории. Мне нужно кликнуть любую из них (я кликаю первую для простоты). http://joxi.ru/52aBL6lt47xo7A
Далее идет оформление заказа.
Есть тест с набором тесткейсов. Первый тесткейс проходит успешно. То есть я захожу в категорию и кликаю первую попавшуюся подкатегорию.
После оформления заказа на дом, мне нужно сделать заказ в магазин - это второй тесткейс.
Так вот на втором тесткейсе драйвер не может найти подкатегорию! Сценарии абсолютно идентичны до перехода на чекаут! Локатор тот же самый.
Я уже перепробовал все, что можно. И по CSS искал, и по XPATH,  и find_elements, и  find_element,  и waint.until(presence_of_element_located, и даже искал все, а потом кликал рандомный - все работает в первый раз, но отваливается по таймауту во второй раз (если wait использовать) или сразу падает с эсепшеном, что не может найти элемент (если использовать find_element)...
Если принудительно обновить страницу, то сразу же элемент находится. Но при этом, на странице подкатегории он уже не может перейти в карточку товара. Если обновить, то найдет.. и так до конца сценария! 
Хочу заметить, что иногда (1 раз из 20 может), элемент все же находится и во второй раз.
Вот один из примеров кода:

self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, 'div[class="category__item-title"] a'))).click()

webdriver chrome 2.45 (пробовал откатывать до версий 2.44, 2.43, 2.42 - все тоже самое)
chrome  71.0.3578.80 (Официальная сборка), (64 бит)
python 3.5

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


В теме: Запуcк сценария по крону ubuntu

03 Декабрь 2018 - 16:54

Коллеги, проблема решена!
В кроне правильно писать так:
*/1 * * * * cd /home/sergey/Рабочий\ стол/apache-jmeter-5.0/bin && ./jmeter -n -t /home/sergey/arom/AROM_cases/Order_to_shop1004_authorization_preprod1_new.jmx > /home/sergey/file_test.log 2>&1

Первое - это надо было обязательно перейти в папку с Jmeter, а уже оттуда его запускать.
Второе - в конце строки прописать перенаправление (если я правильно понял) 2>&1

Ура!
Всем большое спасибо за помощь! 


В теме: Запуcк сценария по крону ubuntu

03 Декабрь 2018 - 16:32

Я весьма слабо в этом разбираюсь и подсказать мне в этом некому на работе (ну точнее некогда, наверно). Прошу вашей помощи.
Вот что я взял из системного лога.
 

Dec  3 19:18:46 sergey-MS-7758 kernel: [17484.648846] intel_pstate: Turbo disabled by BIOS or unavailable on processor
Dec  3 19:18:50 sergey-MS-7758 kernel: [17488.653030] intel_pstate: Turbo disabled by BIOS or unavailable on processor
Dec  3 19:18:54 sergey-MS-7758 kernel: [17492.653666] intel_pstate: Turbo disabled by BIOS or unavailable on processor
Dec  3 19:18:58 sergey-MS-7758 kernel: [17496.657560] intel_pstate: Turbo disabled by BIOS or unavailable on processor
Dec  3 19:19:01 sergey-MS-7758 cron[835]: (sergey) RELOAD (crontabs/sergey)
Dec  3 19:19:01 sergey-MS-7758 CRON[27650]: (sergey) CMD (./jmeter -n -t /home/sergey/arom/AROM_cases/Order_to_shop1004_authorization_preprod1_new.jmx  > /home/sergey/file_test.log >/dev/null 2>&1)
Dec  3 19:19:02 sergey-MS-7758 kernel: [17500.661939] intel_pstate: Turbo disabled by BIOS or unavailable on processor
Dec  3 19:19:06 sergey-MS-7758 kernel: [17504.665111] intel_pstate: Turbo disabled by BIOS or unavailable on processor
Dec  3 19:19:10 sergey-MS-7758 kernel: [17508.665926] intel_pstate: Turbo disabled by BIOS or unavailable on processor
Dec  3 19:19:10 sergey-MS-7758 systemd[1]: supervisor.service: Service hold-off time over, scheduling restart.
Dec  3 19:19:10 sergey-MS-7758 systemd[1]: Stopped Supervisor process control system for UNIX.
Dec  3 19:19:10 sergey-MS-7758 systemd[1]: Started Supervisor process control system for UNIX.
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]: Traceback (most recent call last):
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:   File "/usr/bin/supervisord", line 5, in <module>
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:     from pkg_resources import load_entry_point
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2927, in <module>
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:     @_call_aside
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2913, in _call_aside
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:     f(*args, **kwargs)
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:     working_set = WorkingSet._build_master()
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 635, in _build_master
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:     ws.require(__requires__)
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 943, in require
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:     needed = self.resolve(parse_requirements(requirements))
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 829, in resolve
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]:     raise DistributionNotFound(req, requirers)
Dec  3 19:19:10 sergey-MS-7758 supervisord[27655]: pkg_resources.DistributionNotFound: The 'supervisor==3.2.0' distribution was not found and is required by the application
Dec  3 19:19:10 sergey-MS-7758 systemd[1]: supervisor.service: Main process exited, code=exited, status=1/FAILURE
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]: Traceback (most recent call last):
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:   File "/usr/bin/supervisorctl", line 5, in <module>
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:     from pkg_resources import load_entry_point
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2927, in <module>
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:     @_call_aside
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2913, in _call_aside
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:     f(*args, **kwargs)
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:     working_set = WorkingSet._build_master()
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 635, in _build_master
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:     ws.require(__requires__)
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 943, in require
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:     needed = self.resolve(parse_requirements(requirements))
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:   File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 829, in resolve
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]:     raise DistributionNotFound(req, requirers)
Dec  3 19:19:11 sergey-MS-7758 supervisorctl[27658]: pkg_resources.DistributionNotFound: The 'supervisor==3.2.0' distribution was not found and is required by the application
Dec  3 19:19:11 sergey-MS-7758 systemd[1]: supervisor.service: Control process exited, code=exited status=1
Dec  3 19:19:11 sergey-MS-7758 systemd[1]: supervisor.service: Unit entered failed state.
Dec  3 19:19:11 sergey-MS-7758 systemd[1]: supervisor.service: Failed with result 'exit-code'.
Dec  3 19:19:14 sergey-MS-7758 kernel: [17512.670071] intel_pstate: Turbo disabled by BIOS or unavailable on processor

Могу приложить скриншот дерева, если это поможет. Файл сбросить не могу, боюсь попасть под "разглашение". 
http://joxi.ru/L21GZEoF8MGvqr
Никаких графиков внутри нет. Есть только авторизация на сервере ну и дальше пользовательская авторизация на сайте, добавление товара в корзину, выбор магазина на чекауте и оформление заказа.
Напомню, что вручную в клиентском приложении все ок, в консоли вручную тоже все ок, а по крону увы..


В теме: Запуcк сценария по крону ubuntu

28 Ноябрь 2018 - 11:24

Возможно это поможет локализовать причину:
Дело в том, что скрипт selenium на python у меня тоже не запускается на локальной машине по крону. А вот тот же крон, но с настройками в коде скрипта, чтобы скрипт запускался на виртуальной машине (использую selenium server) - это работает, скрипт запускается. 
Может какие-то права?..


В теме: Запуcк сценария по крону ubuntu

28 Ноябрь 2018 - 11:19

Начнем с простого: командный процессор никогда не ищет исполняемый файл в текущей папке, он его ищет в path. Так что укажите путь явно, перед jmeter в команде крона поставьте ./

Это должно решить проблему странной версии jmeter (где-то в путях лежит старый jmeter)

Ну и упреждающий вопрос. Это крон пользователя или системный?

Попробовал ./jmeter - нет результатов.
Крон пользовательский.


Яндекс.Метрика
Реклама на портале