Python Selenium CSS 定位方法详解

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

目录

CSS 介绍

CSS定位常见符号

通过id, class, 标签 三个常规属性定位元素

1、通过id选择器查找

2、通过class选择器查找

3、通过标签定位元素

单属性选择器定位

组合属性定位:

层级选择器:


CSS 介绍

CSS(Cascading Style Sheets)层叠样式表是一种用来表现HTML或XM等文件样式的计算机语言

CSS 使用选择器来为页面元素绑定属性, 这些选择器可以被 selenium 用作另外的定位策略

CSS 可以比较灵活选择控件的任意属性, 一般情况下定位速度要比 XPath 快,定位更稳定

源码如下:

def find_element_by_css_selector(self, css_selector):
    """
    Finds an element by css selector.

    :Args:
     - css_selector - CSS selector string, ex: 'a.nav#home'

    :Returns:
     - WebElement - the element if it was found

    :Raises:
     - NoSuchElementException - if the element wasn't found

    :Usage:
        element = driver.find_element_by_css_selector('#foo')
    """
    return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
def find_elements_by_css_selector(self, css_selector):
    """
    Finds elements by css selector.

    :Args:
     - css_selector - CSS selector string, ex: 'a.nav#home'

    :Returns:
     - list of WebElement - a list with elements if any was found.  An
       empty list if not

    :Usage:
        elements = driver.find_elements_by_css_selector('.foo')
    """
    return self.find_elements(by=By.CSS_SELECTOR, value=css_selector)

CSS定位常见符号

#表示 id选择器

.表示 class选择器

>表示子元素,层级

一个空格也表示子元素,但是代表所有的后代子元素,相当于 xpath 中的相对路径

通过id, class, 标签 三个常规属性定位元素

css可以通过元素的 id,class,标签 这三个常规属性直接定位到

1、通过id选择器查找

格式:#id属性值

实例:通过css定位的id属性查找输入框元素

selenium的css定位详解,Selenium,python,selenium,css

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'D:\software\python\python37\Scripts\chromedriver.exe')
driver.get("https://www.baidu.com") #打开网页
driver.maximize_window()

element = driver.find_element_by_css_selector('#kw')
print(element) #输出<selenium.webdriver.remote.webelement.WebElement
# (session="c5502c84577712009c1a3d3ac6706c08", element="8005970a-d62c-4345-aa54-b64811d8ca22")>

2、通过class选择器查找

格式:.class属性值

实例:通过css定位的class属性查找输入框元素

selenium的css定位详解,Selenium,python,selenium,css

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'D:\software\python\python37\Scripts\chromedriver.exe')
driver.get("https://www.baidu.com") #打开网页
driver.maximize_window()

element = driver.find_element_by_css_selector('.s_ipt')
print(element) #输出<selenium.webdriver.remote.webelement.WebElement 
# (session="fce7559179e2e20a356295e15c873757", element="3b415a9b-807b-4c39-b66f-fa16080e1e8f")>

3、通过标签定位元素

格式:标签名

实例:通过css的input标签名查找到输入框

selenium的css定位详解,Selenium,python,selenium,css

注:页面存在多个input标签,find_element_by_css_selector在查找到第一个符合要求的input标签元素对象进行返回

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'D:\software\python\python37\Scripts\chromedriver.exe')
driver.get("https://www.baidu.com") #打开网页
driver.maximize_window()

element = driver.find_element_by_css_selector('input')
print(element) #输出<selenium.webdriver.remote.webelement.WebElement 
# (session="13108754bd29f2fd09822dc85dc973ed", element="ba53d394-66f7-4294-91fe-55ebac21c603")>

单属性选择器定位

css 选择器支持通过任何属性来选择元素,语法是用一个方括号 []

格式:[attribute=value] 

实例:通过css定位,name属性查找

selenium的css定位详解,Selenium,python,selenium,css  

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'D:\software\python\python37\Scripts\chromedriver.exe')
driver.get("https://www.baidu.com") #打开网页
driver.maximize_window()

element = driver.find_element_by_css_selector('[name="wd"]')
print(element) #输出<selenium.webdriver.remote.webelement.WebElement 
# (session="7373accb6b4283c20fa3baaf12982f12", element="73a8b08d-a74a-446d-ad31-fabf90fb13de")>

组合属性定位:

1、 标签名+id属性值 组合定位

driver.find_element_by_css_selector("input#kw")

2、标签名+class属性值 组合定位

driver.find_element_by_css_selector("input.s_ipt")

3、标签+属性名 组合定位

driver.find_element_by_css_selector("input[name]")

4、标签名+属性(含属性值)组合定位

driver.find_element_by_css_selector("input[name="wd"]")

driver.find_element_by_css_selector("input[name*="wd"]") #name元素值包含wd

driver.find_element_by_css_selector("input[name^="wd"]") #name元素值以wd开头

driver.find_element_by_css_selector("input[name$="wd"]") #name元素值以wd结尾

5、多个属性组合定位

driver.find_element_by_css_selector("[name="wd"][class="s_ipt"]")

层级选择器:

根据元素的父子关系来选择

实例:直接子元素层级关系,使用>号

selenium的css定位详解,Selenium,python,selenium,css

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'D:\software\python\python37\Scripts\chromedriver.exe')
driver.get("https://www.baidu.com") #打开网页
driver.maximize_window()

element = driver.find_element_by_css_selector('.bg.s_ipt_wr > input')
print(element) #输出<selenium.webdriver.remote.webelement.WebElement
# (session="7373accb6b4283c20fa3baaf12982f12", element="73a8b08d-a74a-446d-ad31-fabf90fb13de")>

 实例:非直接子元素,用空格隔开

selenium的css定位详解,Selenium,python,selenium,css

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'D:\software\python\python37\Scripts\chromedriver.exe')
driver.get("https://www.baidu.com") #打开网页
driver.maximize_window()

element = driver.find_element_by_css_selector('form input')
print(element) #输出<selenium.webdriver.remote.webelement.WebElement
# (session="70ccb6657f9cbb9fff785da9ffc39d84", element="b9896369-d162-401c-aefd-047c9c1c06d1")>

实例:多级关系,使用多个>号文章来源地址https://www.toymoban.com/news/detail-719119.html

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'D:\software\python\python37\Scripts\chromedriver.exe')
driver.get("https://www.baidu.com") #打开网页
driver.maximize_window()

element = driver.find_element_by_css_selector('form > span > input')
print(element) #输出<selenium.webdriver.remote.webelement.WebElement 
# (session="8d4779c2d84fd5aabe19294e22eab5dc", element="6b8ec619-3117-4137-9a01-58dd20ae6ed3")>

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

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

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

相关文章

  • Selenium定位元素的方法css和xpath的区别!

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

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

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

    2024年04月24日
    浏览(43)
  • selenium css定位

    selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法 语法简洁 对比其他定位方式,定位效率更快 对比其他定位方式,定位更稳定 方法1:在浏览器开发者模式的elements中,Ctrl+F搜索栏输入css表达式 方法2:在浏览器开发者模式的console中,按如下

    2024年02月03日
    浏览(45)
  • selenium中元素定位——css高级用法

    css(Cascading style sheets)层叠样式表。是一种用来表现HTML或者XML文档样式的计算机语言。 css的规则主要由两部分构成:选择器以及一条以及多条的声明。 css选择器是浏览器用来选择元素的,selenium也要选择元素,所以就使用了它。 定位元素的注意事项: ①找到等待定位的元

    2024年02月09日
    浏览(57)
  • selenium:元素定位之xpath、css

    元素定位是在做UI自动化测试中最重要的一环,要牢牢掌握定位的方法,才能更有效率的进行UI自动化测试。 常见的元素定位方式: id name tag_name class_name link_text partial_link_text xpath css 其中id,name是具有唯一性的,所以定位起来比较简单,直接使用即可 在UI自动化测试中,xpa

    2024年02月09日
    浏览(47)
  • Selenium之css怎么实现元素定位?

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

    2024年02月12日
    浏览(65)
  • Selenium基础 — CSS选择器定位大全

    css选择器策略 示例 说明 #id #telA 选择id=\\\"telA\\\"的所有元素。 .class .telA 选择 class=\\\"telA”的所有元素。 [属性名=属性值] [name=telA] 除了id和class属性,其他属性的定位格式 [attribute] [target] 选择带有target 属性所有元素。 * * 选择所有元素。 css选择器策略 示例 说明 [attribute^=value] a[s

    2023年04月10日
    浏览(44)
  • Selenium之css如何实现元素定位,你了解多少?

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

    2024年02月16日
    浏览(57)
  • Python-selenium学习笔记-css选择元素

    方法名:find_element(By.CSS_SELECTOR, \\\"元素名\\\") find_elements找所有 示例: 执行结果:  代表寻找第一个类名为plant的元素, 等效于根据CLASS寻找元素 若要 根据tag名 寻找,不用加“.”, 直接写tag名称即可,如下: 结果:   根据id寻找用“#”+id名, 中间不能有空格 结果: 子元素是

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

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

    2024年02月22日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包