Используйте неопределенные переменные в Selenium IDE для условия if - PullRequest
2 голосов
/ 16 мая 2019

Я хочу запустить «дочерний» тест в конце «родительского» теста, который очищает cookie сеанса, если флаг skipReset не был установлен.Кроме того, я хотел бы запустить тест «прародителя», который вызывает «родительский» тест и устанавливает skipReset = true, который должен заставить «дочерний» тест пропустить сброс и, таким образом, сохранить данные сеанса (см. Экран печати).

Однако, если «дочерний» тест был запущен от родителя, который не установил флаг skipReset, тест не пройден.

Failed Selenium child test

Я хотел бы сделать это, чтобы «родительский» тест не нужно было копировать и вставлять в «родительский» тест, исключая строку сброса сеанса.Есть ли способ добиться этого?

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Итак, я нашел обходной путь, который подходит для предполагаемого использования.

Я установил переменную JavaScript sessionStorage в тесте «grandparent» и проверил в «дочернем» тесте, если эта переменная JavaScript sessionStorage не является неопределенной, иправильный.

Обязательно откройте страницу перед установкой переменной sessionStorage, чтобы она сохранялась при каждом изменении страницы.См. Экраны печати тестов деда и дедушки.

Grandparent test

Родительский тест состоит только из следующего кода:

open | /other-page
run  | Reset session // Child test

Child test

Таким образом, «дочерний» тест выполняет код сброса только в том случае, если ни один тест в цепочке не определил переменную JavaScript skipReset.

0 голосов
/ 16 мая 2019

Вы можете создать фиктивную веб-страницу с фиктивным текстовым полем, которое вы используете для обмена этой информацией. Сценарий «дедушка» использует TYPE для заполнения формы, а потомок использует значение хранилища для ее чтения. Тогда вы можете сделать

If | ${value_from_field} = "skipReset" ...

Или: В Selenium IDE ++ (другой проект) вы можете использовать команды csvSave и csvRead для обмена этой информацией .

...