所以我现在正在学习Robot框架,我尝试使用循环来代替重复的代码,使代码更容易维护。不幸的是,我不知道如何解决这个问题,我想把它放到一个循环中。这是一系列的问题,有下拉式的答案。我想在每次测试运行时选择一个不同的答案。我试过几个foor循环选项,但都不起作用。基本上,每个循环都应该单击drop-向下并随机选择一个答案,直到所有问题都得到回答。
Check if User can change "Company" information
Scroll Element Into View ${USER_MENU_SCROLL_TO_COMPANY_MENU}
sleep 1s
click element ${USER_MENU_CLICK_COMPANY_EDIT_BUTTON}
${random_description1} = Evaluate random.choice(@{USER_MENU_DROP_DOWN_QUESTION1})
click element ${random_description1}
sleep 1s
click element ${USER_MENU_CLICK_DROP_DOWN_2}
${random_description2} = Evaluate random.choice(@{USER_MENU_DROP_DOWN_QUESTION2})
click element ${random_description2}
sleep 1s
click element ${USER_MENU_CLICK_DROP_DOWN_3}
${random_description3} = Evaluate random.choice(@{USER_MENU_DROP_DOWN_QUESTION3})
click element ${random_description3}
sleep 1s
click element ${USER_MENU_CLICK_DROP_DOWN_4}
${random_description4} = Evaluate random.choice(@{USER_MENU_DROP_DOWN_QUESTION4})
click element ${random_description4}
sleep 1s
click element ${USER_MENU_CLICK_DROP_DOWN_5}
${random_description5} = Evaluate random.choice(@{USER_MENU_DROP_DOWN_QUESTION5})
click element ${random_description5}
我尝试了类似的方法,但是它想要连接变量中的值。
FOR ${i} IN RANGE 1 5
${random_description} = Evaluate random.choice(@{USER_MENU_DROP_DOWN_QUESTION}+${i})
click element ${USER_MENU_CLICK_DROP_DOWN_}+${i}
click element ${random_description}
sleep 1s
END
2条答案
按热度按时间kmbjn2e31#
你的问题是建立变量的名字,你可以把变量作为一个列表的列表。
下面是我对您当前代码的解决方案的看法:
编辑--这是最初的答案。下面是一个经过验证的解决方案。
输出:
e3bfsja22#
经过一番修修补补,我找到了一个解决办法。也许有一个更有效的方式来写这篇文章,我想知道这是什么,如果有人有任何建议。我的解决办法: