Как мы можем передавать разные браузеры сразу в robotframework

*** Variables *** ${BROWSER} firefox ${URL} http://url/ ${Delay} 0 

в моем файле settings.txt у меня есть переменная с именем {BROWSER} И ассоциируйте значение, как показано выше, это firefox

но я хочу, чтобы

 *** Variables *** @{BROWSERS} firefox chrome IE ${URL} http://url/ ${Delay} 0 

что-то вроде выше … поэтому, когда я запускаю тестовый пакет, он запускается в firefox, и после завершения всех тестовых систем он закроет firefox и откроет хром и снова запустит все тестовые примеры на браузере Chrome .. и так далее после этого он будет работать на IE

так как мы можем это сделать?

Я не хочу делать это вручную (я имею в виду прохождение по одному или редактирование txt-файла). полностью автоматически …. один раз, когда я запускаю тест, он будет автоматически тестироваться во всех браузерах.

PS: это в файле settings.txt, и у меня есть две папки, в которых у меня есть файлы test.txt. поэтому есть основная проблема. Мне нужно итерировать эти папки в цикле

 |-- main.py |-- settings.txt //in this file i have browser variable (or Array) |-- test1 | |-- testl.txt | |-- test1_settings.txt //this will contain all the variables and user defined keyword related to test1 and |-- test2 | |-- test2.txt | |-- test2_settings.txt //same as test1 

Я запускаю тестовые примеры, такие как $pybot test1 test2

2 Solutions collect form web for “Как мы можем передавать разные браузеры сразу в robotframework”

Я вижу два способа сделать это.

1) перейдите через браузер и вызовите ключевое слово, которое выполнит ваш тест:

 *** Variables *** @{BROWSERS} firefox chrome IE *** test cases *** test with several browser :FOR ${browser} IN @{BROWSERS} \ log to console call keyword that does your test with ${browser} 

Вот что вы получаете с этим тестом:

 [Mac]$ pybot . Browser.Ts ============================================================================== test with several browser call keyword that does your test with firefox call keyword that does your test with chrome call keyword that does your test with IE test with several browser | PASS | ------------------------------------------------------------------------------ Browser.Ts | PASS | 1 critical test, 1 passed, 0 failed 1 test total, 1 passed, 0 failed ============================================================================== 

2) другой способ (который я предпочитаю) – сохранить переменную $ {BROWSER} с одним значением и несколько раз вызвать ваш тестовый пример с новым значением для переменной, которую вы даете в командной строке:

 [Mac]$ pybot --variable BROWSER:firefox ts.txt [Mac]$ pybot --variable BROWSER:chrome ts.txt [Mac]$ pybot --variable BROWSER:ie ts.txt 

Хорошо, я решил, что решил эту проблему, написав простой скрипт.

Я просто написал программу, которая будет читать файл settings.txt и найти строку @{BROWSER} firefox chrome IE а затем извлечь имя браузера и сохранить в списке. поэтому этот скрипт вернет List что-то вроде этого ['firefox', 'chrome', 'IE']

теперь вместо того, чтобы использовать команду single pybot, я буду использовать ее в Loop

 for browser in browsers: call(['pybot','--variable'] +['BROWSER:%s'%browser] + test_args) 

Файл settings.txt будет содержать две переменные

 ${BROWSER} firefox #So default browser is firefox. you can leave it blank @{BROWSERS} firefox chrome IE 
  • Python и как получить текст из объекта WebElement объекта Selenium?
  • Selenium Webdriver останавливается с
  • Не удается отправить ключи на сайт с Selenium Python на Centos в Firefox
  • Как захватить снимок экрана, если мои носеты не сработают?
  • selenium move_to_element не всегда наводит указатель мыши
  • Как найти ввод текста по имени с помощью Selenium WebDriver?
  • Python, Selenium, загружать все типы MIME
  • Зарегистрировать HTTP-трафик с помощью Webdriver и PhantomJS
  • Python - лучший язык программирования в мире.