2016-12-05 98 views
0

使用Robot Framework,我想创建一个循环,其中从第一个下拉列表中选择一个值,然后从第二个下拉列表中选择一个值。用户然后执行另一个选项,然后循环重新开始并重复,直到第一个循环中的所有元素都被选中。For循环迭代机器人框架

目前,我的代码完全遍历第1个下拉菜单,然后完全贯穿第2个下拉菜单,并以选中的两个下拉菜单的最后一个值结束。我需要一次遍历每个下拉列表。我已经将我的代码&包含在相关的HTML中。

${one}=  Get List Items  id=CMB_CLASS_ID  //get all values from 1st drop down 
:FOR ${each}  IN @{one} 
\ Select From List By Label id=CMB_CLASS_ID  ${each} 
${two}=  Get List Items  id=CMB_EVENT_TYPE_ID //get all values from 2nd drop down 
:FOR ${each}  IN @{two} 
\ Select From List By Label id=CMB_EVENT_TYPE_ID ${each} 

<select name="CMB_CLASS_ID" id="CMB_CLASS_ID" onchange="GetClassData();" class="form-control" orgvalue="-1" tabindex="1"> 
    <option value="-1" master_value="" selected="true">- Not Selected -</option> 
    <option value="807000000" master_value="">Budget Lines</option> 
    <option value="712000000" master_value="">Documents</option> 
</select> 
<select name="CMB_EVENT_TYPE_ID" id="CMB_EVENT_TYPE_ID" xml_name="EVENT_TYPE_ID" onchange="GetEventData(this);" class="form-control" orgvalue="-1" tabindex="2"> 
    <option value="-1" master_value="" selected="true">- Not Selected -</option> 
    <option value="905000000" master_value="">Created</option> 
    <option value="906000000" master_value="">Updated</option> 
</select> 

回答

2
ForInZip Iteration Example 
    ${one}=  Get List Items  id=CMB_CLASS_ID 
    ${two}=  Get List Items  id=CMB_EVENT_TYPE_ID 

    : FOR ${each1} ${each2} IN ZIP ${one} ${two} 
    \ Select From List By Label id=CMB_CLASS_ID  ${each1} 
    \ Select From List By Label id=CMB_EVENT_TYPE_ID ${each2} 

注:这在2.9版本RobotFramework的介绍,所以一定要确保你的版本是等于或大于2.9

希望它能帮助!

0

为什么你不试图把一个条件,如果你从列表中选择所需的元素,然后出来的循环,而不是遍历整个循环?按照代码,你在这里提到,当然,它将遍历整个列表元素,它选择一个元素,当它到达第二个元素时,它会选择它。这个过程一直持续到最后一个元素。

0

另一种解决方案是保持第二环为关键词,并从第一循环拨打如下:

${one}=  Get List Items  id=CMB_CLASS_ID  //get all values from 1st drop down 
:FOR ${each}  IN @{one} 
\ Select From List By Label id=CMB_CLASS_ID  ${each} 
\ ${two}=  Get List Items  id=CMB_EVENT_TYPE_ID //get all values from 2nd drop down 
\ SelectFromSecondDropdown ${two} 


****Keywords******** 
SelectFromSecondDropdown 
[Argument] ${two} 
:FOR ${each}  IN @{two} 
\ Select From List By Label id=CMB_EVENT_TYPE_ID ${each} 

希望它可以帮助!

+0

它将保持循环内循环的情况!不是同时循环2个数组,我说得对吗? – Waman