首页 > 解决方案 > 无法使用 RobotFramework 中的可见文本从下拉列表中选择

问题描述

在 Robotframework 中,我只能通过使用“按索引从列表中选择,按标签从列表中选择并按值从列表中选择”来从下拉列表中选择一个值。

但我的 xml 不包含任何标签或值。

那么,是否有任何关键字喜欢从可见文本列表中选择以通过可见文本进行选择。

<select name="speed" id="speed" style="display: none;">
     <option>Slower</option>
     <option>Slow</option>
     <option selected="selected">Medium</option>
     <option>Fast</option>
     <option>Faster</option>
</select>

我找到了一个解决方法,比如迭代网络列表并验证其中的文本,然后按索引选择

@{mylist}=    Get Webelements    //*[@id='speed']/option
${i}=    Set Variable    0
${len}=    Get Length    ${mylist}  
:FOR    ${elem}    IN    @{mylist}
\    Log To Console    ${elem}    
\    ${value}=    Get Text    ${elem}
\    Log To Console    ${value}
\    ${ival}=    Convert To String    ${i}
\    Run Keyword if    '${value}'=='Faster' or ${value}'=='Navigation Commands'
\    ...    Select From List By Index    speed    ${ival}
\    ${i}=    Evaluate    ${i}+1
\    Log To Console    ${i}      
END

但我想知道有没有更简单的方法。

标签: selenium-webdriverdrop-down-menurobotframework

解决方案


关键字Select From List By Label做你想做的——通过可见文本选择元素。也就是说,使用这个html:

<option>Faster</option>

,此调用将选择它:

Select From List By Label    id=speed    Faster

推荐阅读