selenium中元素定位——css高级用法

这篇具有很好参考价值的文章主要介绍了selenium中元素定位——css高级用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.css简介

css(Cascading style sheets)层叠样式表。是一种用来表现HTML或者XML文档样式的计算机语言。
css的规则主要由两部分构成:选择器以及一条以及多条的声明。
css选择器是浏览器用来选择元素的,selenium也要选择元素,所以就使用了它。
定位元素的注意事项:
①找到等待定位的元素的唯一属性  ----> 如果有唯一属性,则可以唯一的定位到该元素
①如果该元素没有唯一属性,则需要先找到能够被唯一定位的该元素的父元素/相邻元素,然后使用 ">"," "(空格)、"+"等进行辅助定位。
③不要使用随机唯一属性定位元素   ----> 虽然随机唯一属性是唯一的,但是他是一个会变化的值。
所有的css选择器都是可以组合在一起来定位元素。

2.id选择器

表示通过标签中的id属性来定位元素,通过 # 号来定义。
语法格式:  #id属性的值

driver.find_element_by_css_selector("#title6")

3.class选择器

类选择器,通过标签中的class属性来定位元素,通过 . (一个小数点)来定义。
语法格式:  .class属性的值

driver.find_element(By.CSS_SELECTOR, ".poem")

如果class属性的值中有空格,不能直接在 class属性值的最前面加上一个 点 来定位它,可以通过如下的两种方法来定位该元素:
①截取部分属性值,然后在截取到的部分属性值前面加上一个点来定位它。

driver.find_element_by_css_selector(".Dream")

②需要把class属性值中所有的空格都使用点给替换掉,然后在最前面加上一个点来定位它

locator = " Dream of the Red Chamber".replace(" ", ".")
driver.find_element_by_css_selector(locator)

4.属性选择器

属性选择器需要使用[]来定义。
①不指定属性值
语法格式:  [属性名]
例如: [type]  表示匹配所有的具有type属性的元素。
不指定属性值 就 类似于 select * from 表名 语句的查询的结果,会查到很多。 所有使用较少。

driver.find_element_by_css_selector('[type]')

②指定属性值
语法格式:  [属性名=”属性值”]
select * from学生表 where 学号=“xxxxx”
指定的属性值 就 类似于 在 查询 SQL语句的时候 加了 where 条件。

driver.find_element_by_css_selector('[value="123"]')

5.标签选择器

通过标签的标签名

driver.find_element(By.CSS_SELECTOR, "a")

来定位元素,因为重复的标签有很多,所以标签选择器一般不会单独使用。

6.id选择器、class选择器、标签选择器、属性选择器的组合使用

如果标签选择器需要与其他选择器组合使用,标签选择器一定写在其他选择器的最前面。
id选择器和标签选择器的组合

driver.find_element_by_css_selector("a#tianshang").

7.子元素选择器

通过 > 号来定义,只能选择自己的儿子,不能隔代。
如果要定位的元素没有唯一属性,则先找到能够被唯一定位的该元素的父元素,然后使用子元素选择器定位到要定位的元素。

driver.find_element_by_css_selector("#form > span")

8.后代选择器

通过父标签加上空格加上后代标签进行元素的定位。必须是直系后代,非直系后代元素无法定位到。后代选择器中间可以隔代 ,不论是儿子元素还是孙子元素或者孙子的儿子等都可以找到。

find_element_by_css_selector('#form  [name="first"]')

9.相邻兄弟选择器

通过 + 号 来定位。
兄弟: 表示当前元素与要定位的元素它们具有同一个父元素。
相邻: 指的是紧挨着两个元素。
向后选择(即可以通过哥哥姐姐找到弟弟妹妹元素。) 相邻的兄弟元素,中间不能有间隔。

driver.find_element_by_css_selector('#scroll + form')

10.后续兄弟选择器

使用 ~ 来定位,后续兄弟选择器选取所有指定元素之后的兄弟元素,同级元素。中间可以有间隔。

driver.find_element_by_css_selector('#scroll ~ div ~div ~ div')

11.下拉框的处理

有一个元素是select标签,这时需要选择其中一个/多个选项
这时就不是click或者sendKeys这样的操作,而是应该使用选择操作
代码实现步骤:
①首先定位下拉框:element=driver.find_element(By...)
②把定位到的元素转成下拉框类型:select = Select(element)
③执行选择操作
清空选择:select.deselectAll()
选择某个元素,有三种方式:select_category.select_by_visible_text('界面可见的文本')
select_category.select_by_index(第几个选项)
select_category.select_by_value('选项的value属性')文章来源地址https://www.toymoban.com/news/detail-492730.html

from selenium.webdriver.support.select import Select

select_category = Select(id_category)
select_category.select_by_visible_text('Film')
select_category.select_by_index(0)
select_category.select_by_value('2')

到了这里,关于selenium中元素定位——css高级用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium之css怎么实现元素定位?

    世界上最远的距离大概就是明明看到一个页面元素站在那里,但是我却定位不到!! Selenium定位元素的方法有很多种,像是通过id、name、class_name、tag_name、link_text等等,但是这些方法局限性太大, 随着自动化测试的深入,和不同框架要求,会发现上面的定位方式无法解决一些

    2024年02月12日
    浏览(65)
  • Selenium之css如何实现元素定位,你了解多少?

    前言 世界上最远的距离大概就是明明看到一个页面元素站在那里,但是我却定位不到!! Selenium定位元素的方法有很多种,像是通过id、name、class_name、tag_name、link_text等等,但是这些方法局限性太大, 随着自动化测试的深入,和不同框架要求,会发现上面的定位方式无法解

    2024年02月16日
    浏览(58)
  • 【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总

    目录 一、定位页面元素方法源码说明  (1)Webdriver.common (2)selenium.webdriver.common.by (3)By 二、定位页面元素方法用法汇总 (1)2.0 及以下低版本 selenium :By 定位页面元素方法用法(可忽略) (2)3.0 ~ 3.9 版本 selenium:By 定位页面元素方法用法 (3)4.0 ~ 4.9 版本 selenium:

    2023年04月13日
    浏览(90)
  • Python 的 Selenium 库进行元素定位时,XPath的详细用法

    使用 Python 的 Selenium 库进行元素定位时,XPath 是一种常用的定位方式。XPath 是一种在 XML 文档中导航和定位元素的语言,同时也适用于 HTML 文档。下面是 XPath 的详细用法以及一个封装了通过 XPath 定位各种元素的类的示例。 XPath 详细用法: 绝对路径和相对路径 : 绝对路径:

    2024年01月19日
    浏览(56)
  • Selenium定位元素的方法css和xpath的区别!

    selenium是一种自动化测试工具,它可以通过不同的定位方式来识别网页上的元素,如id、name、class、tag、link text、partial link text、css和xpath。 css和xpath是两种常用的定位方式,它们都可以通过元素的属性或者层级关系来定位元素,但是它们也有一些区别: css: css是级联样式表,

    2024年02月04日
    浏览(60)
  • 【selenium】八大元素定位方式|xpath css id name...

    目录 一、基础元素定位 二、cssSelector元素定位——通过元素属性定位 三、xpath元素定位——通过路径  1 、xpath绝对定位 (用的不多) 缺点:一旦页面结构发生变化(比如重新设计时,路径少两节),该路径也随之失效,必须重新写 2、 xpath相对定位 2.1  路径解释: 2.2  定

    2024年02月22日
    浏览(56)
  • Selenium WebDriver提供By.CSS_SELECTOR定位元素方法

    `By.CSS_SELECTOR` 是 Selenium WebDriver 提供的一种定位元素的方法,它允许使用 CSS 选择器来定位页面上的元素。 以下是常见的 CSS 选择器语法: 1. **标签选择器(Tag Selector)**:通过元素的标签名选择元素。    - 示例:`p` 选取所有 p 标签的元素。 2. **类选择器(Class Selector)**:通

    2024年04月24日
    浏览(44)
  • selenium中元素定位正确但是操作失败,6种解决办法全搞定

    selenium中元素定位正确但是操作失败的原因无外乎以下4种: 0 1 页面没加载好 解决方法: 添加等待方法,如:time.sleep() 0 2 页面提交需要等待给数据后台 解决方法: 添加等待方法,如:time.sleep() 0 3 浏览器没有以最大化方式打开,导致元素被隐藏,定位不到 解决方法: 将网

    2023年04月25日
    浏览(29)
  • ​selenium中元素定位正确但是操作失败,6种解决办法全稿定

    selenium中元素定位正确但是操作失败的原因无外乎以下4种: 一、页面没加载好 解决方法:添加等待方法,如: time.sleep() 二、页面提交需要等待给数据后台 解决方法:添加等待方法,如: time.sleep() 三、浏览器没有以最大化方式打开,导致元素被隐藏,定位不到 解决方法:

    2023年04月22日
    浏览(30)
  • 【深入浅出Selenium库的百变玩法】: 掌握Web自动化测试的关键技术和策略,包括元素定位、页面操作、动态内容处理等,适用于初学者和高级开发者的综合指南

    Selenium是一个功能强大的库,支持多种高级操作,如处理多窗口、多标签页、键盘与鼠标事件、滚动操作等。掌握Selenium可以大大提高Web应用的测试效率和覆盖范围。希望这篇文章能帮助你开启Selenium进行自动化测试的新篇章。 Selenium也是一个广泛使用的自动化测试工具,它支

    2024年02月20日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包