python slenium 中CSS定位

以百度为例

一、通过id、class定位

1、#id:python:driver.find_element_by_css_selector('input#kw')

2、.class:python:driver.find_element_by_css_selector('input.s_ipt')

注:class='bg s_ipt_wr quickdelete-wrap',类似这种叫复合class,由多个类选择器组成,定位的写法则是:.bg.s_ipt_wr.quickdelete-wrap,所有空格用.(点)代替

二、其他属性

使用其他属性定位,如name,type。。。

python:driver.find_element_by_css_selector('input[name="wd"]')

如果属性没有值,也可以使用

python:driver.find_element_by_css_selector('input[name]')

三、模糊匹配,定位百度输入框

匹配属性值由多个空格隔开,匹配其中一个值:input[class~='bg']  # 百度搜索按钮:class='bg s_btn'
匹配属性值为 'bg' 开头的方法:python:driver.find_element_by_css_selector("input[class^='bg']")
匹配属性值 ‘ipt’ 结尾的方法:python:driver.find_element_by_css_selector("input[class$='ipt']")
匹配属性值中间有 '_i' 的元素:python:driver.find_element_by_css_selector("input[class*='_i']")

四、组合属性定位

1、input#id.class[name='wd']
2、多个属性组合input[name][autocomplete]

五、层级定位

1、子元素定位(以 > 分隔)

form>span#id>input[name]

2、后代元素定位(以空格分隔)

span input :定位span下所有的input标签,包括span下的所有层次的input,注意不是span下一层的input,是所有

3、元素层级css还支持三个方法,分别是first-child、last-child、nth-child(n)
(1)first-child:第一个后代元素
(2)last-child:最后一个后代元素
(3)nth-child(N):指定第N个后代元素
下面举例:
(1)input:first-child   定位所有层次第一个为input的元素,注意是第一个元素为input标签的
(2)span input:first-child    定位span标签下,第一个为input标签的元素
(3)span :last-child   定位span标签下,最后一个元素
(4)span input:last-child    定位span标签下,最后一个为input标签的元素
(5)span :nth-child(2)  定位span标签下,第二个元素
(6)form.fm>:nth-child(2)  定位form标签,class等于fm下的第二个元素

转载于:https://www.cnblogs.com/gxfaxe/p/10276322.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值