Selenium 的元素定位

一,UI自动化的操作流程

  • 选择界面元素:

    根据元素的特征:id,name, class_name, tag_name, link_text(根据超链接的文本定位),partial_link_text(根据超链接文本模糊匹配定位)

    根据元素特征和关系:css, xpath

  • 操作界面元素:
    输入操作:点击,输入文字,拖拽等
    输出操作:获取元素的各种属性

根据界面上获取的数据进行分析和处理

二,元素定位大法

# id 定位,,name ,class_name 都类似
driver.find_element_by_id('username').send_keys('sq2')

#根据标签名tag_name定位
driver.find_element_by_tag_name()
  • 注意1:

** find_element, 会返回找到的第一个元素,如果根据表达式找不到元 素,就会报错
find_elements, 会寻找页面上所有满足表达式的元素,将所有能找到的元素存在一个列表中.如果一个找不到,那就返回一个空列表**

from selenium import webdriver
driver = webdriver.Chrome()
driver.find_element_by_class_name('form-control').send_keys('123')  #登陆界面的用户名输入
# 寻找所有class 属性为form-control 元素,存入列表,列表赋值给变量 eleSli
elesli = driver.find_elements_by_class_name('form-control')
# 声明了一个列表
txtSli = ['111','2222']
# 事先知道 eleSli 列表中有两个元素,所有设置循环为两次
for i in range(2):
    #elesli[idx] 每次循环,根据下表取出elesli 中的内容 ---一个元素
    # 对这个元素输入文本,文本内容来源于 txtSli, 取相同的下标
    elesli[i].send_keys(txtSli[i])   # 登陆界面的用户名和密码都填入进去

  • 注意2:
    class_name 中间有空格,不能直接使用。这种是复合类
    class 属性比较特殊,空格代表间隔付好,表示这个元素的class 属性有多个值 ,任取其中一个值就可以定位(但是不保证唯一)

  • 注意3:
    id 有可能是动态,动态的id 是不能使用,动态Id以数值开始的。表中经常使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值