Есть ли способ сделать действия необязательными в Selenium IDE? - PullRequest
3 голосов
/ 14 февраля 2011

Это вопрос новичка, но ... есть ли способ сделать действия необязательными в Selenium IDE? Я приведу пример использования.

В тестируемом приложении пользователи видят модальное окно типа «эй, вы соглашаетесь с ToS путем входа в систему» ​​в начале каждого сеанса. Чтобы продолжить, нужно нажать кнопку ОК, и они не увидят окно снова до следующего сеанса.

Исходя из того, что я видел до сих пор, мне нужно иметь один набор тестов для первого теста каждый день и второй набор тестов для всех остальных. Второй набор точно такой же, за исключением того, что в нем нет шага "щелкни, чтобы закрыть начальное модальное окно". Кроме того, я мог бы просто вспомнить, что мой первый запуск теста каждый день будет неудачным, и что мне придется снова запускать тест.

Оба эти «решения» кажутся излишне неловкими. Могу ли я просто сделать команду click необязательной?

Ответы [ 6 ]

3 голосов
/ 09 сентября 2013

Создайте файл javascript с именем user-extensions.js с приведенным ниже кодом.Затем перейдите в диалоговое окно Selenium IDE Options и выберите файл user-extensions.js, перезапустите Selenium, и вы сможете выбрать TryClick, который будет работать так же, как Click, но подавлять любые ошибки.

Selenium.prototype.doTryClick = function(locator) {
    try {
        return Selenium.prototype.doClick.call(this,locator);
    } catch(err) { return null; }   
};
3 голосов
/ 30 октября 2012

Возможно, просрочено, но для будущих искателей.

Вы можете использовать операторы , если и endIf в среде IDE.

1 голос
/ 25 июля 2013

Как отметил aj.esler, Selenium ID Flow control - хорошее решение, которое сработало для меня.Вот дополнение Firefox к Я использую gotoif , вот пример того, как вы можете его использовать.Когда значение skip равно 1, оно перейдет к строке label = jump и не выполнит все, начиная с gotoif, как до label = jump.enter image description here

1 голос
/ 15 февраля 2011

Если вы используете файлы cookie, чтобы решить, следует ли скрывать диалоговое окно ToS, вы можете проверить, установлен ли определенный файл cookie, и если да, пропустить щелчок.

Я не использовал IDE Селена много,но я думаю, что сделать проверку будет намного проще, если вы используете язык программирования.Я не уверен, как это сделать в тестах HTML.

Если вы используете HTML, вы можете посмотреть Selenium IDE Flow Control и посмотреть, сможет ли это сделать то, что вам нужно.Я сам этим не пользовался, но, похоже, поддерживает заявления if.Вы можете использовать verifyCookie, чтобы проверить, существует ли cookie.

Надеюсь, это поможет.

0 голосов
/ 30 июля 2015

Используйте http://wiki.openqa.org/display/SEL/flowControl аддон. Сделайте что-то вроде этого:

1.storeElementPresent | //button[@name="cookie_law_accept"] | cookie_law
2.goToIf | storedVars['cookie_law']!=true | end
3.click | //button[@name="cookie_law_accept"]
4.label | end

Объясните: 1. Если элемент присутствует, он будет сохранен как «cookie_law» со значением «true» 2.Если cookie_law не "true" - перейдите к ярлыку "end" - в противном случае перейдите к следующему шагу 3.Нажмите кнопку подтверждения приема файлов cookie (только когда s введите код здесь present because it it s нет - вы переходите к метке "end" и пропускаете эту команду) 4.Вы идете сюда, если нет кнопки закона куки:)

0 голосов
/ 07 февраля 2013

Еще одна чрезвычайно полезная надстройка управления потоком для среды IDE: SelBlocks

Это даст вам возможность использовать: if/else/for/foreach/while и даже способ чтения переменных из файла XML.

...