For loop For循环迭代机器人框架
使用Robot框架,我试图创建一个循环,其中从第一个下拉列表中选择一个值,然后从第二个下拉列表中选择一个值。然后用户执行另一个选项,然后循环重新开始并重复,直到第一个循环中的所有元素都被选中 目前,我的代码完全遍历第一个下拉列表,然后完全遍历第二个下拉列表,最后选择两个下拉列表的最后一个值。我需要能够一次遍历每个下拉列表。我已经包括了我的代码和相关的HTMLFor loop For循环迭代机器人框架,for-loop,robotframework,For Loop,Robotframework,使用Robot框架,我试图创建一个循环,其中从第一个下拉列表中选择一个值,然后从第二个下拉列表中选择一个值。然后用户执行另一个选项,然后循环重新开始并重复,直到第一个循环中的所有元素都被选中 目前,我的代码完全遍历第一个下拉列表,然后完全遍历第二个下拉列表,最后选择两个下拉列表的最后一个值。我需要能够一次遍历每个下拉列表。我已经包括了我的代码和相关的HTML ${one}= Get List Items id=CMB_CLASS_ID //get all values
${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>
${one}=Get List Items id=CMB\u CLASS\u id//从第一个下拉列表中获取所有值
:对于@{one}中的${each}
\按标签id=CMB\U CLASS\U id${each}从列表中选择
${two}=Get List Items id=CMB\u EVENT\u TYPE\u id//从第二个下拉列表中获取所有值
:对于@{two}中的${each}
\按标签id=CMB\U事件类型\U id${each}从列表中选择
-未选择-
预算项目
文件
-未选择-
创建
更新
注意:这是在RobotFramework的2.9版本中引入的,因此请确保您的版本等于或大于2.9
希望有帮助 为什么不尝试设置一个条件,即如果从列表中选择了所需的元素,则从循环中出来,而不是遍历整个循环?根据您在这里提到的代码,它肯定会遍历整个列表元素,它选择一个元素,当它转到第二个元素时,它选择该元素。这个过程一直持续到最后一个元素。另一个解决方案是保持第二个循环作为关键字,并从第一个循环调用,如下所示:
${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}
希望对你有帮助 它将仍然是一个循环内循环的情况!不是同时循环两个数组,对吗?
${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}