栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

selenium 元素定位(1)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium 元素定位(1)

概述

一个页面最基本组成单元是元素,想要定位一个元素,我们需要特定的信息来说明这个元素的唯一特征。在selenium中,有8种定位到具体元素的方法。如下表所示:

定位器 Locator描述
class定位class属性与搜索值匹配的元素(不允许使用复合类名)
css selector定位 CSS 选择器匹配的元素
id定位 id 属性与搜索值匹配的元素
name定位 name 属性与搜索值匹配的元素
link text定位link text可视文本与搜索值完全匹配的锚元素
partial link text定位link text可视文本部分与搜索值部分匹配的锚点元素。如果匹配多个元素,则只选择第一个元素。
tag name定位标签名称与搜索值匹配的元素
xpath定位与 XPath 表达式匹配的元素
方法

假设我们的网页由以下部分组成,这里尽可能使网页内容简单,来具体的介绍各个方法的不同。

  1. Onion is a Vegetable
  2. Tomato is a Vegetable
  • Apple is a Fruit
  • Tomato is a Fruit
根据class属性定位
# 定位网页中class为tomatoes的元素,网页中符合条件的有两个,但是该方法只返回第一个
driver.find_element(By.CLASS_NAME, "tomatoes")

# 如果需要返回所有的元素,则需要使用find_elements方法
driver.find_elements(By.CLASS_NAME, "tomatoes")
根据id属性定位
# 在HTML种,由于id相同的两个元素不存在,故不需要find_elements方法
driver.find_element(By.ID, "fruits")
根据css选择器定位
# 在这种定位方式中,功能更加强大,定位更加灵活,但需要掌握css语法
driver.find_element(By.CSS_SELECTOR, '#fruits .tomatoes')
根据tag name定位
# 根据标签的名字,这里是根据
  • 标签来定位的 driver.find_elements(By.TAG_NAME, "li")
    根据name属性定位

    name属性一般用于表单中,服务器通过name属性来获取具体元素的值。

    # 查找name属性为inp的表单
    driver.find_elements(By.NAME, "inp")
    
    根据link text定位

    该种定位方式需要元素的内容与输入的内容完全匹配。

    # 定位文本为Tomato is a Vegetable的所有元素
    driver.find_elements(By.LINK_TEXT, "Tomato is a Vegetable")
    
    根据partial link text定位

    该种定位方式只需要元素的内容与输入的内容部分匹配即可定位到相应元素。

    # 定位文本中含有Tomato的所有元素
    driver.find_elements(By.PARTIAL_LINK_TEXT, "Tomato")
    
    根据xpath定位
    # 根据xpath表达式来定位元素
    driver.find_elements(By.XPATH, "/ol/li")
    
    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/1005860.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号