Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

IDE: проблема с множественным if/else и rollup rules


(Олег Тагай) #1

Всем добрый день.
Я использую Selenium IDE и userexstension-rollup.js, у меня три проблемы на которые я пока не нашёл решения(в глубине верю что что-то можно придумать))):

Проблема 1. Как можно использовать if/else без gotolabel? Проблема в том, что если их несколько, соответсвенно селениум будет прыгать к последнему. Вот пример:
storeEval
if (selenium.isElementPresent(“id=type-note”) == true) {nextMove = “moveCreate”} else if (selenium.isElementPresent(“id=type-note”) == false) {nextMove = “refreshPage”}
nextMove

gotolabel ${nextMove}

label refreshPage

refreshAndWait

label moveCreate

rollup createElement which=bookmark

Дальше у меня такой же код, соответственно он переходит к последней метке. Пока вижу решение что нужно делать метки уникальные, но меня это не совсем устраивает.

Проблема 2:
Вышеописанную проблему я запихивал в роллап-рулы, но rollup.js почему-то не видит метки( Ошибка такая: Can’t find label “reloadPage”. Я где-то накосячил или же таков принцип работы?

Проблема 3:
Можно ли решить данную проблему в таком виде в js. файле:
if(selenium.isElementPresent(“id=type-note”) == false)
document.location.reload()
else
commands.push({
command: ‘waitForElementPresent’, target: ‘id=type-note’
});

Так же ругается, я думаю что он без commands.push не будет работать.

Проблема 4. Как передать переменную args.name в xpath?
command: ‘mouseOver’, target: ‘xpath=(//a[contains(text(), args.name)])’

Буду очень признателен вашей помощи. Надеюсь что не отниму у вас много времени. Спасибо.


(Mykhailo Poliarush) #2

В общем, по всем описанным проблемам видно, что костыль на костыль находит. Хотите или нет, надо перебираться на обычный язык программирования, так будет значительно проще. А если нет возможности (или клиент не хочет), то я бы советовал или исключить такие тесты, или хотя бы их перевести на язык программирования. Потому как если вам уже надо вложенные if это уже становиться проблемой.

А теперь по проблемам.

  • На счет лейблов не знаю, это надо проверять.
  • На счет rollup. Механизм ветвления это расширение, надо проверить вообще на совместимость этих механизмов.
  • Решение через js. Да должно сработать, но также не уверен. Помню в книге https://www.packtpub.com/books/content/user-extensions-and-add-ons-selenium-10-testing-tools что-то было об этом, посмотрите там.
  • На счет передачи переменной в xpath. Посмотрите примеры ui-map и user-extentions

(Олег Тагай) #3

Весьма вам признателен за ответ. Да, вы правы, клиент хочет Selenium IDE и ничего кроме, конечно же с использованием Selenium WD+java не было бы никаких проблем. Да, там одни костыли, ни никак иначе. Спасибо за предложенные варианты и книги, обязательно их прочту.


(roman_ua) #4

А при чем тут клиент при выборе инструмента для тестирования ? =) сам долго сидел на IDE но причиной того был основной функционал app svg image но как выяснилось RC тоже неплохо работает с ним. Был только рад переходу на WebDriver or RC хотя IDE тоже интересно поковырять =)


(Олег Тагай) #5
  1. Клиент всегда прав.
  2. Клиент САМ потом хочет писать тесты) и ему не хочется вникать в программирование.
    Ребята, я знаю преимущества WD и RC, но нужен IDE. Прошу не критиковать, а помогать! :slight_smile: