• selenium 定位input输入框下的选择项


    今天的问题与下图中的类似

    这是一个input型输入框,当我点击或输入值时,输入框下方会显示选择项帮助快速输入,代码如下:

    <input class="v-input some" autocomplete="off" name="some"/>
    <input name="any" style="display: none;"/>
    <ul class="V-ss bb ">
    <li class="v-select-item">苹果</li>
    <li class="v-select-item">樱桃</li>
    <li class="v-select-item">蓝莓</li>
    </ul>
    

     一开始我只定位了inout输入框,向其中输入数据“苹果”,然后点击查找,这时问题出现了,虽然页面刷新了,但是并未进行查找

    问题存在的原因是,输入框虽然提供了输入,但是必须从出现的选择项中进行点击,完成选择,才可进行查找,由此我就需要定位到代码中相应的li

    解决方法1:

    首先向输入框中输入值,然后下方选项就会只显示<li>苹果</li>,然后在查找input输入框的兄弟元素下的li(此时是唯一的)

    drive.find_element_by_name("some").input("苹果“)
    drive.find_element_by_xpath("//input[@name='some']/following-sibling::ul/li").click()    
    

    解决方法2:

    点击输入框,将会显示下方选项,然后查找input输入框下兄弟元素下的li(此时是一个列表),然后传入值,遍历lil列表,找到和传入值相同的li的text值,进行点击

    drive.find_element_by_name("some").click()
    lilist=drive.find_elements_by_xpath("//input[@name='some']/following-sibling::ul/li")
    for li in lilist:
        if li.text=="苹果"
            li.click()
    

     我认为方法2比方法1更严谨一些,上述代码还少了一些判断,在实际应用中不可忽视

  • 相关阅读:
    第五届河南省大学生程序设计竞赛 :最强DE战斗力(大数乘法)
    zzuli2455: 最大增区间(一)
    zzuli2455: 最大增区间(一)
    zzuli2424: 越靠近,越幸运(dfs)
    菜根谭#31
    菜根谭#30
    菜根谭#29
    菜根谭#28
    菜根谭#27
    菜根谭#26
  • 原文地址:https://www.cnblogs.com/quxikun/p/7799847.html
Copyright © 2020-2023  润新知