zoukankan      html  css  js  c++  java
  • 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更严谨一些,上述代码还少了一些判断,在实际应用中不可忽视

  • 相关阅读:
    docker镜像操作
    利用docker搭建lnmp平台
    算法导论笔记
    算法导论笔记
    VMware 安装CentOS 7 NAT模式 配置静态ip 连接外网 xshell连接虚拟机
    spring boot入门笔记(四)
    spring boot入门笔记 (三)
    spring boot入门笔记 (二)
    spring boot入门笔记 (一)
    修改request请求参数
  • 原文地址:https://www.cnblogs.com/quxikun/p/7799847.html
Copyright © 2011-2022 走看看