请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 392|回复: 0

selenium元素定位

[复制链接]

21

主题

21

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2022-8-20 16:16:34 | 显示全部楼层 |阅读模式
元素定位:
1、手工f12在被测页面中定位到要操作的元素
2、分析定位的该代码:
  2.1看标签、属性
2.2找到唯一(整个页面的代码做比较)识别的内容
3、python写代码调用webdriver的元素定位的API
   find_element(By.定位方式,’唯一属性值’),由第2步确定定位的方式
例如:
bs.find_element(By.LINK_TEXT,'新梦想论坛')
4、根据想对以上定位的代码要实现的功能来确定调用webdriver操作的API
例如:
bs.find_element(By.LINK_TEXT,'新梦想论坛').click()
元素定位方法:
  find_element(By.定位方法)
LINK_TEXT :按照a标签的文字内容
ID       :按任意标签的ID属性值(唯一识别最好)HTML表单里面的单选按钮radio
NAME    :按NAME属性值(唯一识别较好)
TAG_NAME:按标签的名字
CLASS_NAME:CLASS属性值中的空格
  注意:HTML代码中CLASS属性值中的空格
LINK_NAME:按照a标签的文字内容
PARTIAL_LINK_NAME:按照a标签的部分文字内容
XPATH:综合定位方法
  有其他唯一定位方式情况下,不建议使用路径定位
1、按路径(带索引)
  绝对路径定位:
    /html/body/div/div/div/div/div/form/span/input
  相对路径:
    //span/input
xpath的索引位置是从1开始表达第1
//div[3]/a[2]
2、按属性值(有效的扩充了现有的元素定位方式)
  //标签名[@属性名=”属性值”
     //input[@id=kw
     from input where id=kw
//标签名[@属性名1=”属性值”  and/or @属性名2=”属性值”
备注:以上的标签名和属性名可以用通配符*替代
1、使用xpath自带的函数扩充定位
  starts-with()  #xx为开头
  substring() #字符串截取(从第几位截取几位)
  contains() #包含xx内容
  text() #文本值
  bs.find_element(By.XPATH,'//span[starts-with(text(),"婴幼儿无人照料")]').click()
  
substring(‘字符串’startlen)#1开始
  substring(abcdefg,2,3)
  substring(abcdefg,2)       

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2023-12-1 21:59 , Processed in 0.043131 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表