对于隐藏性质的非标准的动态 id 的下拉框,如何…
2019-11-26 16:01:26来源:博客园 阅读 ()
对于隐藏性质的非标准的动态 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() #模拟选中第一个选项
至此,问题解决。
原文链接:https://www.cnblogs.com/jjstrip/p/11937173.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:移动端rem适应布局
- 关于vue的多页面标签功能,对于嵌套router-view缓存的最终无 2020-06-01
- 网页搜索框里显示字段鼠标点击后就隐藏的方法 2020-05-29
- 对于前端编程,靠自学是真的可以的吗? 2020-05-25
- CSS文本超出自动隐藏显示省略号 2020-04-27
- CSS3--3种隐藏元素方法的区别 2020-03-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash