Python-webdriver 怎么定位下拉列表中的元素呢

Python-webdriver 怎么定位下拉列表中的元素呢

如果是 select > option*x 结构的话,一般有以下几种做法:

1,定位父元素select(下面语句中的id=aaa),然后通过tag name找到所有option,得到option元素的数组,然后通过数组索引([1])定位,最后click.

driver.find_element_by_id( "aaa" ).find_elements_by_tag_name( "option" )[ 1 ].click();

2 ,  跟第1条差不多思想,不过用option元素的value属性来定位了,下面代码是通过xpath来写的,可以换成 by_css.

driver.find_element_by_xpath( "//select[@id='aaa']" ).find_element_by_xpath( "//option[@value='5PM']" ).click()

3, 用到了Select类, 实例select对象有很多方法:

deselect_all(),全不选。

deselect_by_index(index),不选第 index 项。或者是 index+1项,忘了index从0 还是从1 开始了。

deselect_by_value( value),不选元素value属性为value的项,听着有点拗口,其实value值就是option标签中value的值。

deselect_by_visible_text( text),不选标签innerHTML为text的option

select_by_index( index),同上,选择第 index 项。这个用于 option的text和value不固定的情况

select_by_value( value), 同上,选择。

select_by_visible_text( text),同上,选择。

from  selenium.webdriver.support.ui  import  Select 
 
select  =  Select(driver.find_element_by_id( "aaa" )) 
select.deselect_all() 
select.select_by_visible_text( "Edam" )

基本就这些吧。掌握了这几条,所有的 select 下拉框应该难不住楼主了。网站还有一些用js或者jq模拟出来的下拉框,另作其他处理,在这里就不展开了。

最后 selenium官网 有webdriver的完整文档,包括很多种编程语言版本。可以去看看:selenium官网


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值