Selenium之css定位方式

Selenium之css定位方式

一、说明:

  1. css是一种标记语言,焦点:数据的样式。控制元素的显示样式,就必须先找到元素,在css标记语言中找元素使用css选择器
  2. css定位就是通过css选择器工具进行定位的
  3. 极力推荐使用css,css查找效率高,语法简单

二、语法:

driver.find_element_by_css_selector()

三、常用策略

1、id选择器

      前提:元素必须有id属性

      语法:#id     如:#passwordA

2、class选择器

      前提:元素是必须有class属性

      语法:.class    如:.telA

3、元素选择器

      语法:element    如:input

4、属性选择器

      语法:[属性名='属性值']

5、层级选择器

      语法:

      (1)父级标签>子级标签,如p>input    

      (2)上级任意标签   子级标签,如:p input

四、策略扩展

  1. [属性^='开头的字母'] :获取指定属性以指定字母开头的元素
  2. [属性$='结束的字母']:获取指定属性以指定字母结束的元素
  3. [属性*='包含的字母']:获取指定属性包含指定字母的元素

五、案例:

  1. 使用css  id选择器,定位邮箱地址,输入1232434
  2. 使用css 获取指定属性以指定字母开头的元素,定位密码框,输入12345678
  3. 使用css  class 选择器,定位注册按钮,控制台输出按钮文本
  4. 使用css  获取指定属性以指定字母结束的元素,定位验证码输入框,输入asdf
  5. 使用css  获取指定属性包含指定字母的元素,定位验证码输入框,输入asdf
  6. 使用css  class  选择器,定位确认密码框,输入12345678
  7. 使用css  元素选择器,定位标题title,输出标题文本
  8. 使用层级选择器,定位手机号输入框,输入1232455455

代码如下:

from selenium import webdriver
from time import sleep

#这里使用网易163邮箱注册界面

#获取浏览器对象
driver=webdriver.Firefox()
#获取网络链接
url="https://reg.mail.163.com/unireg/call.do?cmd=register.entrance"
driver.get(url)
#使用css id选择器,定位邮箱地址,输入1232434
driver.find_element_by_css_selector("#nameIpt").send_keys("1232434")

#使用css 获取指定属性以指定字母开头的元素,定位密码框,输入12345678
driver.find_element_by_css_selector("input[id^='main']").send_keys("12345678")
#driver.find_elements_by_css_selector("input[id^='main']")[0].send_keys("12345678")


#使用css class 选择器,定位注册按钮,控制台输出按钮文本
register_text=driver.find_element_by_css_selector(".btnReg").text
print("注册按钮文本为:",register_text)

#使用css 获取指定属性以指定字母结束的元素,定位验证码输入框,输入asdf
#driver.find_element_by_css_selector("[name$='de']").send_keys("asdf")

#使用css 获取指定属性包含指定字母的元素,定位验证码输入框,输入asdf
driver.find_element_by_css_selector("[id*='deI']").send_keys("asdf")

#使用css 属性选择,定位确认密码框,输入12345678
driver.find_element_by_css_selector("[name='mainConfirmPassword']").send_keys("12345678")

#使用css  元素选择器,定位标题title,控制台输出标题文本
title=driver.find_element_by_css_selector("title").text
print("网页的标题title为:",title)

#使用层级选择器,定位手机号输入框,输入1232455455
driver.find_element_by_css_selector("div>input[name='mobile']").send_keys("1232455455")
#暂停3秒
sleep(3)
#退出浏览器驱动
driver.quit()

运行效果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值