Selenium09--CSS定位
CSS定位
- CSS是英文“Cascading Style Sheets"的缩写,是层叠样式表。
- CSS是一种用来表现HTML或XML等文件样式的计算机语言
- CSS为HTML标记语言提供了一种样式描述,它定义了其中元素的显示方式。例如字体、颜色、位置等,被用于描述网页上的信息格式化和显示方式
- 样式规则由一个或多个样式属性及其值组成。可以直接放在网页中,也可以单独存在独立的文档中
- CSS不仅可以静态的修饰网页,还可以配合各种脚本语言动态的对网页各种元素进行格式化
CSS选择器
- CSS SELECTOR(CSS选择器):是CSS中的一个子技术,用于选择要修饰样式的页面元素。
获取CSS选择器
Firefox→打开网页→目标元素右击→菜单里选择“检查"→目标源代码行右击→复制→CSS选择器
CSS定位语法
变量 = driver.find_element(By.CSS_SELECTOR,'CSS选择器')
"""
打开首页,点击"登录"
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/index.php')
driver.find_element(By.CSS_SELECTOR,'#ECS_MEMBERZONE > a:nth-child(2) > img:nth-child(1)').click()
sleep(3) # 等待3秒
driver.quit() # 关闭浏览器
XPATH定位与CSS定位优缺点
XPATH功能强大,丰富的函数库,支持向上级查找,通过XPATH轴支持各种节点关系查找
CSS定位,选择器在性能上更优,运行速度更快,语法上更简洁
CSS选择器分类
类型选择器、简单属性选择器、路径选择器、索引号选择器
类型选择器
- CSS类型选择器是使用元素标记的名称来选择元素的一种选择器。
- 使用这种选择器,可以对这种类型的每个元素进行修饰。
"""
启动Firefox,打开留言板,输入留言内容hello,等待3秒,关闭浏览器
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/message.php')
driver.find_element(By.CSS_SELECTOR,'textarea').send_keys('hello')
sleep(3) # 等待3秒
driver.quit() # 关闭浏览器
简单属性选择器
[属性名='属性值'] 或 标记名[属性名='属性值']
注意:属性不限定,任何属性都可以进行筛选
CLASS属性选择器:用点(.)来标识用CLASS里的类名选择元素。
标记.类名
.类名
.类名1.类名2.类名3
ID属性选择器:用#来标识用id属性值选择元素
标记#id属性值
#id属性值
#id属性值.类名
所有属性都可以用:[]描述属性名值对的信息
标记[属性名='属性值']
[属性名='属性值']
[属性名1='属性值1'][属性名2='属性值2']
路径选择器
- 按照父子关系路径选择元素:用大于号(>)向下级查找子节点
- 如:高级搜索是form下级的a
- form#searchForm>a
- 按照祖先后代关系路径选择元素:用英文半角空格查找后代节点
- 如:高级搜索是div后代里的a
- div#search a
索引号选择器
- CSS索引号应用场景:同一个父元素下级有同标记的子元素。
- CSS索引号规则:无论什么标记的所有子元素一起从1开始排序。
CSS索引号语法
标记:first-child -- 第一个子节点
标记:last-child -- 最后一个子节点
标记:nth-child(索引号) -- 任意索引号的子节点
CSS选择器语法小结
本文来自博客园,作者:暄总-tester,转载请注明原文链接:https://www.cnblogs.com/sean-test/p/16974596.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)