selenium:8种定位元素的方式

元素是网页的HTML静态页面中所存在的一个个标签;

元素定位一般而言是基于元素自身所包含的特点来定位的,这些特点包括:

标签的名称(决定元素是什么)、标签的属性(决定元素有什么特质)、标签的文本

  • 以下四种是根据元素的标签和属性来定位

(1)id 

  • 说明:通过元素的id属性来定位元素,具有唯一性,定位后基本不会重复
  • 前提:元素有id属性
  • id定位方法:find_element(by=By.ID, value=' ')或 find_element ("id", value=' ')
  • 示例:打开百度搜索页面,通过id定位,输入搜索关键字

(2)name

  • 说明:通过name属性来指定元素名称,相对少见,但容易重名
  • 前提:元素有name属性
  • name定位方法:find_element(by=By.NAME, value=' ')或 同上
  • 示例:打开百度搜索页面,通过name定位,输入搜索关键字

(3)class_name

  • 说明:指定元素的类名,通过class属性来定位;不推荐,重复的概率非常高
  • 前提:元素有class属性
  • class_name定位方法:find_element (by=By.CLASS_NAME, value=' ')  或 同上
  • 示例:打开百度搜索页面,通过class_name定位,输入搜索关键字

(4)tag_name

  • 说明:HTML本质就是由不同的tag(标签)组成,而每个tag都是指同一类,所以一定会返回多个结果,一般不建议使用,可用于查找多个重复的内容的时候使用。
  • tag_name定位方法:find_element(by=By.TAG_NAME, value=' ')

  • 以下两种是根据超链接的文本定位

(5)link_text

  • 说明:link_text定位与前面4个定位有所不同,它专门用来定位超链接文本(文本值)
  • 前提:定位的元素是链接标签(a标签)
  • link_text定位方法:find_element(by=By.LINK_TEXT, value=' ')
  • 示例:打开首页,通过link_text定位到登录按钮,并进行点击操作

(6)partial_link_text

  • 说明:partial_link_text定位是对link_text定位的补充,partial_link_text为模糊匹配;link_text为精确匹配。
  • 前提:定位的元素是链接标签(a标签);通过传入a标签局部文本或全部文本来定位元素,要求输入的文本能够唯一找到这个元素
  • partial_link_text定位方法:find_element(by=By.PARTIAL_LINK_TEXT, value=' ')
  • 示例:打开百度首页,通过partial_link_text定位到新闻,并进行点击操作

  • 元素路径定位(如果同一页面中有多个结构相同的元素,可以用xpath定位)

(7)xpath

  • 说明:有自己的独特语法,基于文件系统树状结构形态定位的
  • 相对路径:类似于一种查询的调用
  • //*[@id="kw"]               

//                        全局范围

*/a/span             任何一个元素或者增加筛选精度指定一个标签

[ ]                       添加筛选条件

@                      表示添加的条件是属性

id                       属性的名称

kw                      属性的值

and                    可以进行多个条件的关联

text()                  可以通过文本来查找    eg://*[text()="新闻"] 

/..                       通过子级定位到它的父级    eg: //*[@id="kw"] /.. 

/                         通过父级定位到它的子级    eg: //*[text()="新闻"] /span[1]

contains函数      contains()          eg: //a[contains(text(),"百度"]) //form[contains(@id,"f"])

初期多用开发者工具的ctrl+f查找功能进行元素定位内容的校验。

  • 绝对路径:一般不用绝对路径,很难维护
  • /html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input

  • 选择器定位(样式定位)

  (8)css_selector

总结:有id用id,没id用name,都不行用xpath,链接可以用link text;元素定位如果同时有多个结果,默认返回定位的第一个结果

示例 : 

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Selenium是一个流行的自动化测试框架,它可以通过各方式定位Web页面中的元素。以下是Selenium支持的常见元素定位方式: 1. ID:使用元素唯一标识符进行定位。 2. Name:使用元素的名称进行定位。 3. Class Name:使用元素的类名进行定位。 4. Tag Name:使用元素的标签名称进行定位。 5. Link Text:使用链接文本进行定位。 6. Partial Link Text:使用部分链接文本进行定位。 7. CSS Selector:使用CSS选择器进行定位。 8. XPath:使用XPath表达式进行定位。 根据实际情况,选择适合自己的元素定位方式,可以方便地对Web页面进行测试和操作。 ### 回答2: Selenium是一套用于自动化浏览器操作的工具,可以模拟用户的操作,对页面元素进行定位和操作。 在Selenium中,元素定位是指通过不同的方式找到页面上的元素,以便后续对其进行操作。常用的元素定位方式有以下几: 1. 通过ID定位:使用元素唯一标识ID进行定位,可以通过driver.find_element_by_id方法进行定位。 2. 通过Name定位:使用元素的name属性进行定位,可以通过driver.find_element_by_name方法进行定位。 3. 通过Class Name定位:使用元素的class属性进行定位,可以通过driver.find_element_by_class_name方法进行定位。 4. 通过Tag Name定位:使用元素的标签名进行定位,可以通过driver.find_element_by_tag_name方法进行定位。 5. 通过Link Text定位:使用链接文本进行定位,可以通过driver.find_element_by_link_text方法进行定位。 6. 通过Partial Link Text定位:使用链接文本的一部分进行定位,可以通过driver.find_element_by_partial_link_text方法进行定位。 7. 通过XPath定位:使用XPath语法进行定位,可以通过driver.find_element_by_xpath方法进行定位。 8. 通过CSS Selector定位:使用CSS选择器进行定位,可以通过driver.find_element_by_css_selector方法进行定位。 以上是常见的Selenium元素定位方式,开发者可以根据具体的需求选择合适的定位方式定位页面上的元素。同时,可以使用这些方法的复数形式(如find_elements_by_id)来定位多个符合条件的元素

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值