Python-selenium学习笔记-css选择元素

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

根据css表达式进行选择

方法名:find_element(By.CSS_SELECTOR, "元素名")

find_elements找所有

示例:

from selenium import webdriver
from selenium.webdriver.common.by import By

if __name__ == '__main__':
    wd = webdriver.Chrome()
    wd.get("https://cdn2.byhy.net/files/selenium/sample1.html")
    # 根据css选择元素
    element = wd.find_element(By.CSS_SELECTOR, ".plant")
    print(element.get_attribute("outerHTML"))
    input()

执行结果:

python by.css_selector,

 代表寻找第一个类名为plant的元素,等效于根据CLASS寻找元素

若要根据tag名寻找,不用加“.”, 直接写tag名称即可,如下:

# 根据tag名
    element = wd.find_element(By.CSS_SELECTOR, "div")
    print(element.get_attribute("outerHTML"))

结果:

python by.css_selector,

 根据id寻找用“#”+id名, 中间不能有空格

    # 根据id寻找
    element = wd.find_element(By.CSS_SELECTOR, "#searchtext")
    print(element.get_attribute("outerHTML"))

结果:

python by.css_selector,

 css选择子元素和后代元素

子元素是被直接包含的元素

后代元素是被包含的元素

若元素2为元素1的直接子元素,css选择语法:

元素1>元素2

最终选择的元素是元素2, 且要求元素2是元素1的直接子元素

也可以支持多层级的选择,如:

元素1>元素2>元素3>元素4

最终选择元素4, 且元素4是元素3的直接子元素,元素3是元素2的直接子元素,元素2是元素1的直接子元素

若只需要是后代元素, 则用空格隔开即可:

元素1 元素2 元素3 元素4

最终选择的是元素4

根据子元素寻找实例:

# 根据子元素寻找
    elements = wd.find_elements(By.CSS_SELECTOR, "#container>div")  # 找出id为container下,所有标签名为div的元素
    for e in elements:
        print(e.get_attribute("outerHTML"))

执行结果:

python by.css_selector,

根据后代元素进行选择

# 根据后代元素寻找
    elements = wd.find_elements(By.CSS_SELECTOR, "#container span")  # 找到id为container下的所有标签名为span的元素
    for e in elements:
        print(e.get_attribute("outerHTML"))

执行结果:

python by.css_selector,

css根据普通属性值选择

对于普通的属性,除了CLASS_NAME与ID之外,css可以用[]将属性传入进行选择

    # 根据普通的属性选择(除了class_name与id之外的属性)
    element = wd.find_element(By.CSS_SELECTOR, '[type="text"]')
    print(element.get_attribute("outerHTML"))

python by.css_selector,

 如果属性名已经可以找到,可以不加=后面的内容

css表达式可以组合使用

div[class='xxx'] 代表寻找的是tag名为div, 属性名为class且值为xxx的元素

验证选择的正确

可以在浏览器开发者模式下ctrl+f, 写入css表达式查看是否寻找正确

表达式组合使用

'div.animal'代表找到一个元素标签名为div,类名为animal。

如果要找所有的类名为plant和animal:

'.plant,.animal', 式中“,”就代表“或”的意思,及寻找类名为plant或animal的元素

elements = wd.find_elements(By.CSS_SELECTOR, ".plant,.animal")
    print(len(elements))
    for e in elements:
        print(e.get_attribute("outerHTML"))

python by.css_selector,

 各个运算符之间有优先级关系,如果要找id=t1下的所有标签名为h3,p,span的元素,

#t1>span,p,h3是不可以的,因为“,”的优先级较低,无法得到预想的结果。

正确写法如下:#t1>span,#t1>p,#t1>h3

wd.get("https://cdn2.byhy.net/files/selenium/sample1a.html")
    elements = wd.find_elements(By.CSS_SELECTOR, "#t1>span,#t1>p,#t1>h3")
    print(len(elements))
    for e in elements:
        print(e.get_attribute("outerHTML"))

选择奇数结点:

nth-of-type(odd)

偶数:

nth-of-type(even)

相邻兄弟结点选择

用+号, 代表紧跟着的元素, 如:h3+span

如果选择后面所有的span, 则h3~span

代码:

# 相邻兄弟结点选择
    elements = wd.find_elements(By.CSS_SELECTOR, "h3+span")  # 标签名为span, 并且是父节点中的该类型的第1个元素
    print(len(elements))
    for e in elements:
        print(e.get_attribute("outerHTML"))

    elements = wd.find_elements(By.CSS_SELECTOR, "#t1 h3~span")  # id=t1中,h3之后所有的span元素
    print(len(elements))
    for e in elements:
        print(e.get_attribute("outerHTML"))

python by.css_selector,

 文章来源地址https://www.toymoban.com/news/detail-842809.html

到了这里,关于Python-selenium学习笔记-css选择元素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 分享学习:供电公司周考线上作业自动答题流程python-selenium

    供电公司周考考试内容包括单选题、多选题和判断题,题库涉及到安规、技能实操、技能理论,下面分享实现自动答题功能。要实现Python自动答题需要浏览器驱动,需要安装第三方库,配置最终环境,如图1所示。 图1 第一步:下载谷歌浏览器并配置谷歌驱动 使用selenium时,要

    2024年02月03日
    浏览(34)
  • Python学习笔记——selenium定位iframe和元素(快速定位)

    在使用selenium过程,发现定位iframe、元素比较困难,所以制作一个辅助小工具。  当前界面没有,调整driver位置 1.Xpath定位  2,.其他定位方式 获取元素、操作失败重复操作,直至操作成功。

    2024年02月13日
    浏览(51)
  • python-selenium

    C:UsersAdministratorAppDataLocalProgramsPythonwheelpip install selenium 如不配置会提示【MODULENOTFOUNDERROR: NO MODULE NAMED ‘SELENIUM‘】 pycharm-左键双击打开-文件-设置-依次找到如下,如果存在selenuim则已配置成功。  如不存在,则点击上图蓝色的加号+,输入“selenium”-安装软件包。再返回上

    2024年02月03日
    浏览(28)
  • CSS笔记(黑马程序员pink老师前端)选择器,字体,文本属性,Emmet语法,元素显示模式,CSS背景

    选择器分为基础选择器和复合选择器两大类。 基础选择器 包括:标签选择器、类选择器、id选择器和通配符选择器。 多类名 可以把一些标签元素共同的样式放到一个类里面。这些标签都可以调用这个公共的类,然后再调用自己独有的类。 复合选择器 基础选择器的组合.包括后

    2024年02月09日
    浏览(61)
  • python-selenium淘宝自动化购买

    其中使用的tbtime包 支付页面使用了iframe无法定位密码输入框 配合AHK输入支付密码

    2024年02月04日
    浏览(36)
  • python-selenium-框架定位的处理frame

    Frame框架是Html框架结构中一种布局格式,共有三种形式:frameset、frame、iframe frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架 页面比较复杂,页面套页面,定位第几层窗口,找元素时,要先看元素在哪个框架,找到框架在定位元素。 框架也是某一个具

    2024年02月11日
    浏览(36)
  • python-selenium控制浏览器多开窗口

    1、视频展示-多开5个百度页面 目录结构 只要在当前目录下放上自己所在的谷歌驱动器:谷歌驱动器如何下载,请参考博客:请点我 奉上代码

    2024年02月16日
    浏览(61)
  • python-selenium ”selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find

    1、确认当前的Google Chrome版本号与chromedriver版本号一致,如果不一致,到http://chromedriver.storage.googleapis.com/index.html下载与当前chrome浏览 器对应的驱动。 http://selenium-release.storage.googleapis.com/index.html selenium下载地址; 2、将chromedriver.exe文件放入python的scripts目录,并将该scripts目录

    2024年02月04日
    浏览(44)
  • CSS基础笔记四,伪类选择器和对象选择器(鼠标点击的四种状态,列表自定义选择,容器只有一个,除了被选中的其他都有,元素为空的时候,元素获得焦点的时候,单选和复选增强)

    伪类选择器  常用有这些: 1,鼠标点击元素的4种状态 爱恨离别(link visited hover active) 前面的2个只适用于 a标签,后面的2个适用于其他标签。顺序不能改变 2,列表中先选择谁就选择谁              first-child  选择开头              last-child 选择结尾       

    2024年02月03日
    浏览(54)
  • Python-selenium库安装及Edge浏览器驱动配置(Anaconda环境下)

    文章使用的环境是在Anaconda下配置的虚拟环境,在Anacanda下的虚拟环境下下载安装库为如下步骤:  1.1. 激活并且进入使用的环境中(xxx为虚拟环境的名称) 1.2. 进入到所需的环境中后,下载并安装seleniu库 2.1. 查看自己Edge浏览器的版本:         在Edge浏览器的搜索栏里输入地

    2024年04月10日
    浏览(74)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包