robot framework定位一个联动的下拉框时报错: element not visible

robot framework定位一个联动的下拉框时报错: element not visible

clipboard.png
点击“0508科室”的代码如下

Click Element    //li[text()='0508科室']

运行到如图就失败了,“0508科室“虽然出现了,但是点击时,提示”element not visible“

阅读 5.1k
1 个回答

一直以为问题出在下拉框的联动性上,后来看到网上有人说,页面有多个相同属性的元素,报这个错。于是看了第一个下拉框的选项,果然和第二个下拉框有相同选项,而他们的元素结构一模一样,所以找到了2个元素,估计默认点了第一个,但是第一个下拉选项此时不可见了,所以报”element not visible“。
找到原因就好解决了,先获取所有元素和元素个数,如果元素个数等于1,说明此时要点击第一个元素,如果元素个数等于2,说明此时要点第二个元素。
代码如下:

选择下拉框选项
    [Arguments]    @{text}
    Wait Until Page Contains Element    css=.ant-select-selection__rendered
    @{DropdownList}    Get WebElements    css=.ant-select-selection__rendered
    Comment    获取当前页面所有的下拉框,循环遍历,给每个下拉框赋值
    ${index}=    Set Variable    0  
    :FOR    ${keyword}    IN    @{DropdownList}
    \    Click Element    @{DropdownList}[${index}]
    \    @{ElementList}    Get WebElements    //li[text()='@{text}[${index}]']  
    \    ${ElementListLen}    Get Element Count    //li[text()='@{text}[${index}]']   
    \    Run Keyword If    ${ElementListLen}==1    Click Element    //li[text()='@{text}[${index}]']    
    \    Run Keyword If    ${ElementListLen}==2    Click Element    @{ElementList}[1]             
    \    ${index}    Evaluate    ${index}+1               
    [Documentation]    text为该页面所有下拉框赋值。text是一个参数列表,所以个数可变,页面有多少个下拉框,就填写多少个参数
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进