вызов другой функции, содержащей шаги веб-драйвера в каратэ - PullRequest
1 голос
/ 30 апреля 2020

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

Это важно с моей точки зрения для:

  • хранения частей селена, которые в противном случае будут распространяться на все функции
  • , имеющие одну единственную точку на случай, если что-то изменится в веб-интерфейсе (селектор и т. д. c)

Я попытался определить функцию "A", которая:

  • устанавливает URL открыть с помощью браузера (в переменной, скажем, my_url)
  • вызывает сценарий в функции B

Функция "B" открывает URL-адрес в браузере и что-то делает Например, нажимает на кнопку и ждет div:

Given driver my_url
When waitForEnabled(<button selector>).click()
Then match waitFor(<div selector>).text == 'Signing complete'

Проблема с этим решением заключается в том, что при запуске функции A она вызывает функцию B и работает нормально, но не закрывается. веб-драйвер в конце функции. Вероятно, использование ловушки, закрывающей веб-драйвер после сценария в функции B, может быть решением, но я не уверен, что это лучший способ сделать это.

Я попытался запустить функцию в своей IDE (IntelliJ Идея), а не с Maven.

Так вы пробовали другие решения для этого? У вас есть подсказки / советы, чтобы предложить?

1 Ответ

1 голос
/ 30 апреля 2020

Я думаю, что явное закрытие браузера в ходе тестирования - это нормально.

Или вы можете использовать afterScenario хук из функции вызова верхнего уровня: https://github.com/intuit/karate#hooks

Вы также можете позвонить по номеру Java код: { ссылка }

Обратите внимание, что в каратэ теперь есть замена для Webdriver, и каратэ автоматически закроет браузер: https://github.com/intuit/karate/tree/master/karate-core

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...