How can we pass different browser at once in robotframework
I see 2 ways to do it.
1) loop over your browser and call a keyword that do your test:
*** 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}
Here is what you get with this test:
[Mac]$ pybot .Browser.Ts==============================================================================test with several browser call keyword that does your test with firefoxcall keyword that does your test with chromecall keyword that does your test with IEtest with several browser | PASS |------------------------------------------------------------------------------Browser.Ts | PASS |1 critical test, 1 passed, 0 failed1 test total, 1 passed, 0 failed==============================================================================
2) another way (which I prefer) is to keep your ${BROWSER} variable with a single value and call your test case several time with a new value for the variable that you give on the command line:
[Mac]$ pybot --variable BROWSER:firefox ts.txt[Mac]$ pybot --variable BROWSER:chrome ts.txt[Mac]$ pybot --variable BROWSER:ie ts.txt
Ok I think I've solved this problem by writing a simple script.
I Just wrote a program which will read the file settings.txt and find the line @{BROWSER} firefox chrome IE
and then extract browsers name and store into a list . so this script will return a List something like this['firefox', 'chrome', 'IE']
now instead of using single pybot command I'll use it in a Loop
for browser in browsers: call(['pybot','--variable'] +['BROWSER:%s'%browser] + test_args)
settings.txt file will contain two variable
${BROWSER} firefox #So default browser is firefox. you can leave it blank@{BROWSERS} firefox chrome IE