2016-12-05 1 views
0

Robot Framework를 사용하여 첫 번째 드롭 다운에서 값을 선택하고 두 번째 드롭 다운에서 값을 선택하는 루프를 만들려고합니다. 그런 다음 사용자는 다른 옵션을 수행 한 다음 루프를 다시 시작하고 첫 번째 루프의 모든 요소가 선택 될 때까지 반복합니다.For Loop Iteration Robot Framework

현재 내 코드는 첫 번째 드롭 다운을 완전히 반복 한 다음 두 번째 드롭 다운을 완전히 완료하고 두 드롭 다운의 마지막 값으로 끝납니다. 한 번에 하나씩 드롭 다운을 반복 할 수 있어야합니다. 내 코드 & 관련 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} 

참고 :이 RobotFramework의 2.9 버전에 도입, 그래서 버전이 같거나

보다 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