• 对于隐藏性质的非标准的动态 id 的下拉框,如何定位和选中


    今天,在页面上碰到一个非 select 标签的下拉框,打算进行定位和模拟选中。

     <input aria-invalid="false" autocomplete="disabled" placeholder="请选择" type="text" class="AABBCC-input DDCC-inputDDCCcomplete-input AABBcomplete-inputFocused AACC-inputAdornedEnd" aria-autocomplete="list" autocapitalize="none" spellcheck="false" value id="abc-autocomplete-84931">

    没有 <select> 标签,也没看到<ul><li>等标签,无法采用一般方式。

    第一个想法是,通过 xpath 定位到 input 后,直接给 value 赋值。结果很显然,行不通,因为对应选项没有真正被选中。

    上网找了针对隐藏下拉框用  js 来定位的方法,结果也是不尽人意,因为没有对症下药。

    通过 selenium 录制一段脚本做参照。但录制脚本是基于firefox的,页面元素对应的标签属性与chrome不一样,而我测试对象用的浏览器以chrome为主。

    但这一圈下来,已经摸清了里头的来龙去脉,完全清楚了这个下拉框写法和其它一般写法的不同之处。于是根据这个非标准情况,自己写。

    先 find_element_by_xpath 方法定位下拉框按钮,并模拟单击,然后再定位其中某选项去选中。由于很多属性里面都包含变化的id,只能用contain方法来定位。两行代码如下所示:

    driver.find_element_by_xpath("//button[@aria-label='Open popup']").click()  #模拟点开下拉框
    driver.find_element_by_xpath("//li[contains(@id,'option-0')]").click()               #模拟选中第一个选项

    至此,问题解决。

    努力奋斗,做更好的自己!
  • 相关阅读:
    Seven Puzzle Aizu
    Cheese
    Curling 2.0
    Ball
    Property Distribution
    Red and Black
    Lake Counting
    Ants
    剑桥雅思写作高分范文ESSAY20
    剑桥雅思写作高分范文ESSAY19
  • 原文地址:https://www.cnblogs.com/jjstrip/p/11937173.html
Copyright © 2020-2023  润新知