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

Публикации Darksol89

12 публикаций создано Darksol89 (учитываются публикации только с 20 апреля 2023)


#173380 как продолжить выполнение скрипта, если 1 тест кейс упал

Отправлено автор: Darksol89 20 августа 2019 - 13:18 в Selenium - Functional Testing

 

Давайте начнем с того, что называется скриптами, а что кейсами.

Обычно это синонимы, и имеются в виду функции или методы, которые запускаются по-отдельности раннером. Если один упал, остальные кейсы прогоняются - так всегда бывает. Я даже не знаю, что нужно сделать, чтобы уронить раннер. Но иногда можно поставить такой ключ при запуске, чтобы выполнение останавливалось после первой ошибки.

 

Тут можно предположить, например, такие варианты:

  • Вы называете кейсами что-то другое
  • Вместо вызова раннера у вас написан просто последовательный вызов тестов в main (не надо так)
  • Настроена остановка после первой ошибки

 

именно был пустой Мэйн, без Тест Раннера. Прописал сьют через ранер, все пошло четко.




#173374 как продолжить выполнение скрипта, если 1 тест кейс упал

Отправлено автор: Darksol89 20 августа 2019 - 09:34 в Selenium - Functional Testing

Иначе бы вопроса такого не возникло.

чт ов Вашем понимании адок?




#173372 как продолжить выполнение скрипта, если 1 тест кейс упал

Отправлено автор: Darksol89 20 августа 2019 - 09:10 в Selenium - Functional Testing

У вас там скорее всего какой то адок в смысле организации кода. Тут ответы на все ваши вопросы и рецепты:
https://docs.python....y/unittest.html

почему адок?




#173355 как продолжить выполнение скрипта, если 1 тест кейс упал

Отправлено автор: Darksol89 19 августа 2019 - 16:32 в Selenium - Functional Testing

Всем доброго времени суток!

 

Есть Unittest скрипт на Питоне, в нем 5 тест кейсов, каждый проверяет свой функционал по общей тематике. Так вот если 1 тест кейс упадет, например не найдет локатор или еще что, а может быть поймает баг. то весь скрипт падает.

Есть ли какая библиотека или способ, заставить скрипт выполняться дальше, но после выдать результат, что мол Тест кейс 01 упал, а остальные успешны?




#172335 Невозможность взаимодействия с элементом DOM

Отправлено автор: Darksol89 27 мая 2019 - 16:19 в Selenium - Functional Testing

 

 

У нас что-то типа такого:

driver.executeJavaScript("arguments[0].click()", element);

У вас есть driver.execute_script(""), надо переделать как-то моё на ваше.

"arguments[0].click()" а это обязательная запись? просто не пойму что за аргумент 0. element - это я так понимаю тот элемент куда надо кликнуть?

 

 

JS вообще сложно понять (=

да, element - это ваш "driver.find_element(*locator)"

 

а надо импорт какой то делать?




#172332 Невозможность взаимодействия с элементом DOM

Отправлено автор: Darksol89 27 мая 2019 - 15:20 в Selenium - Functional Testing

У нас что-то типа такого:

driver.executeJavaScript("arguments[0].click()", element);

У вас есть driver.execute_script(""), надо переделать как-то моё на ваше.

"arguments[0].click()" а это обязательная запись? просто не пойму что за аргумент 0. element - это я так понимаю тот элемент куда надо кликнуть?




#172315 Невозможность взаимодействия с элементом DOM

Отправлено автор: Darksol89 27 мая 2019 - 09:59 в Selenium - Functional Testing

 

Ктож его знает, этож сафари...

Возможно, вы просто нарвались на ошибку в драйвере сафари или самом браузере.

Обходные пути - временно исключить этот тест на Сафари, до выхода новой версии драйвера/браузера.

Вы же это дело запускаете на свежей версии Сафари?

Руками в Сафари кликается норм на этом элементе?

Можете попробовать вместо обычного клика на элементе, кликнуть по нему JacvaScript-ом.

вот ведь упыри - действительно, JS работает.

Сафари последней доступной версии - 12.1

 

А как JS для клика использовать??
У меня клик по элементу тоже не происходит, использую  клик такой: 
click(driver, design_dialog_locator(param[0][0], param[0][1]))

Сам метод выглядит так:

def click(driver, locator, sleep_time=5, expl_wait=20):
"""
Wait until element will be shown and clickable, then send 'click' to it.
TimeoutException will be generated if something's wrong (NOT NoSuchElementException).

:type driver: WebDriver
:type locator: tuple
:param sleep_time: delay before click
:param expl_wait: explicit waiting time for presence of element will found
:type sleep_time: float
:type expl_wait: float
"""

time.sleep(sleep_time)
WebDriverWait(driver, expl_wait, ignored_exceptions=StaleElementReferenceException).until(
ec.presence_of_element_located(locator))
#WebDriverWait.until(ec.invisibility_of_element_located(locator))
# additional check were deleted, cause of some unexpected timeout exceptions on it
#WebDriverWait(driver, 30).until(ec.element_to_be_clickable(locator))
wait_for_loading(driver)
driver.find_element(*locator).click()
#driver.execute_script(*locator)
wait_for_loading(driver)




#172273 selenium.common.exceptions.ElementClickInterceptedException:

Отправлено автор: Darksol89 24 мая 2019 - 10:37 в Selenium - Functional Testing

Наконец то заработало! Всем спасибо за помощь)

 

элементы я искал по такому принципу - tabs = driver.find_elements(By.XPATH, "//div[@id='designTabs']/ul/li/а"). Если посмотреть код страницы, то нужные ссылки действительно находятся под элементами списка с тем же названием. Убрал из когда /а, т.е. получилось так: tabs = driver.find_elements(By.XPATH, "//div[@id='designTabs']/ul/li") и все заработало как надо, скрипт стал переключать табы как надо.




#172270 selenium.common.exceptions.ElementClickInterceptedException:

Отправлено автор: Darksol89 24 мая 2019 - 10:00 в Selenium - Functional Testing

Как сюда картинку вставить? какая то кривая форма вставки картинок в сообщение - Пишет Недопустимое расширение файла




#172269 selenium.common.exceptions.ElementClickInterceptedException:

Отправлено автор: Darksol89 24 мая 2019 - 09:56 в Selenium - Functional Testing

А таких элементов точно один? Может их несколько и он кликает по первому попавшемуся, вот и не получается у него.

да вроде один.
[/URL]">http://1711bbfa831a0c1c2b2965bedae31a40.png




#172266 selenium.common.exceptions.ElementClickInterceptedException:

Отправлено автор: Darksol89 24 мая 2019 - 09:38 в Selenium - Functional Testing

Эта проблема решилась, поставил последние версии Селениума и гекодрайвера + мозиллу до 67 обновил. Но теперь другая проблема, похожая. Только тут  не мой метод на клик задействован, а просто обычный метод из файла webelement.py, метод click не может кликнуть куда нужно и приходит эксепшн: selenium.common.exceptions.ElementClickInterceptedException: Message: Element <a class="active" href="#tab1"> is not clickable at point (362,140) because another element <li class="tab1"> obscures it




#172255 selenium.common.exceptions.ElementClickInterceptedException:

Отправлено автор: Darksol89 23 мая 2019 - 10:57 в Selenium - Functional Testing

Всем привет!

Сделали переход на Selenium 3.9.0 + GeckoDriver 0.19 + FireFox 58.0.2.

 

 

Теперь половина тестов не работает, и везде возникает ошибка: selenium.common.exceptions.ElementClickInterceptedException: Message: Element <a id="tree54" class="tree54" href="javascript:void(0);"> is not clickable at point (151,823) because another element <div class="sidebarBottomElement"> obscures it

Айдишники и классы разные, в зависимости от точки клика.

 

Как это победить? 

 

Написан отдельный метод на клик:

Язык тестов - Python

def click(driver, locator, sleep_time=5, expl_wait=40):
"""
Wait until element will be shown and clickable, then send 'click' to it.
TimeoutException will be generated if something's wrong (NOT NoSuchElementException).

:type driver: WebDriver
:type locator: tuple
:param sleep_time: delay before click
:param expl_wait: explicit waiting time for presence of element will found
:type sleep_time: float
:type expl_wait: float
"""

time.sleep(sleep_time)
WebDriverWait(driver, expl_wait, ignored_exceptions=StaleElementReferenceException).until(
ec.presence_of_element_located(locator))
# additional check were deleted, cause of some unexpected timeout exceptions on it
WebDriverWait(driver, 40).until(ec.element_to_be_clickable(locator))
driver.find_element(*locator).click()
wait_for_loading(driver)

 

К слову, на селениуме 2,53 и мозиле 45 все работало как часы.

Что нужно добавить\поменять, чтобы тесты бегали на ура? При просмотре через консоль, этот элементы куда надо кликнуть никем не перекрывается!