Selenium IDE - sideflow.js loops

允我心安 提交于 2019-12-12 18:30:57

问题


I wanted to create testcase with loops. I got latest sideflow.js extension and targeted to it in Selenium options. Then I restarted Selenium IDE but it doesn't work.

Sample testcase:

store|i|1
while|${i}<200|
echo|${i}|
storeEval|i=1*storedVars['i']; i+1|i
endWhile||

It displayed the following error message:

[error] Unexpected Exception: fileName -> chrome://selenium-ide/content/tools.js -> file:///home/imslavko/bin/sideflow.js?1346044911197, lineNumber -> 100

Firefox version: 14.0.1 for Ubuntu

Selenium IDE version: 1.9.0

sideflow.js: latest from this page https://github.com/darrenderidder/sideflow/blob/master/sideflow.js

How to make it work? Thanks in advance.


回答1:


If you want to create a loop, the following is suggested. I am still learning so I am not sure but this has worked for me.

For i=0; i <= 200; i++  i

break   "${i}" == 200   

Echo    *** "${i}" ***  

endFor



回答2:


Instead of

store|i|1

write it as

store|1|i



回答3:


Here is an example triple array looper (With static variables so you can see it changing)

This is a custom one I have made, notice the syntax for storing incremental variables (Such as counters e.t.c.)

This looper will cycle through all of your options (In the example below there are 6*5*4=120 options). It echo's each option out once and then moves onto the next one.

example_array_looper
storeEval   new Date().getTime();   timeStart
echo    ${timeStart}    
storeEval   new Array("1","2","3","4"); toparray
storeEval   new Array("A", "B", "C", "D", "E"); middlearray
storeEval   new Array("i","ii","iii","iv","v","vi");    bottomarray
getEval topindex=0; 
getEval middleindex=0;  
getEval bottomindex=0;  
getEval loopCounter=0;  
while   topindex < storedVars['toparray'].length    
storeEval   topindex    temptop
while   middleindex < storedVars['middlearray'].length  
storeEval   middleindex tempmiddle
while   bottomindex < storedVars['bottomarray'].length  
storeEval   bottomindex tempbottom
echo    javascript{storedVars['toparray'][storedVars['temptop']]+" -> "+storedVars['middlearray'][storedVars['tempmiddle']]+" -> "+storedVars['bottomarray'][storedVars['tempbottom']]} 
getEval bottomindex++;  
getEval loopCounter++;  
endWhile        
getEval bottomindex=0;  
getEval middleindex++;  
endWhile        
getEval bottomindex=0;  
getEval middleindex=0;  
getEval topindex++; 
endWhile        
storeEval   loopCounter loops
echo    Total number of loops is: ${loops}  
storeEval   new Date().getTime();   timeEnd
echo    ${timeEnd}  
storeEval   (${timeEnd}-${timeStart})/1000  scriptRunTime
echo    Total Run Time for Script was: ${scriptRunTime}s    
storeEval   ${scriptRunTime}/${loops}   averageTime
echo    Average Loop Duration was: ${averageTime}s  

I opted to remove all the html tagging (So the gaps should be quite evident). StoreEval command is best for holding your loop counters because you can then use them as incrementals in one step instead of 2.



来源:https://stackoverflow.com/questions/12136746/selenium-ide-sideflow-js-loops

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!