How can we pass different browser at once in robotframework How can we pass different browser at once in robotframework selenium selenium

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 IEand 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