首页 > 其他分享 >Selenium09--CSS定位

Selenium09--CSS定位

时间:2022-12-11 21:55:52浏览次数:49  
标签:Selenium09 -- 元素 driver 标记 选择器 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选择器语法小结

标签:Selenium09,--,元素,driver,标记,选择器,CSS,属性
From: https://www.cnblogs.com/sean-test/p/16974596.html

相关文章

  • 最全面系统的Zabbix讲解 _ 含源码&监控类型整理
    从本篇内容你能得到:1.Zabbix是什么、能做到什么2.Zabbix组件详解、架构和处理工作流程3.Zabbix各监控项类型的采集实现(SNMP、ICMP、Ping、简单检查等)4.Zabbix模板......
  • 2022-2023-1学期 20221417 《计算机基础与程序设计》课程总结
    作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第十五......
  • 20221421《计算机基础与程序设计》课程总结
    ##基本信息|这个作业属于哪个课程|2022-2023-1-计算机基础与程序设计|https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP|这个作业......
  • $‘\r‘: command not found的解决方法
    缘起在Linux系统中,运行Shell脚本,出现了如下错误:one-more.sh:line1:$'\r':commandnotfound出现这样的错误,是因为Shell脚本在Windows系统编写时,每行结尾是\r\n,而在......
  • 使用 dragonflydb 作为godns 的redis 存储
    玩法没变,可以参考我以前写的,主要是调整了redis为dragonflydb测试下参考docker-compose文件version:"3"services:redis:image:docker.dr......
  • 表格设计
    表格设计一、表格总体布局对不同表格的界面进行调整在这里要不断调整数据,使表格在页面的中心<td><tableid="subtree1"style="DISPLAY:"width="100%"border="0......
  • 左上角返回按钮
    @OverrideprotectedvoidonCreate(BundlesavedInstanceState){······//拿到标题栏ActionBaractionBar=getSupportActionBar(......
  • 利用云服务器发布项目
    前言平时开发我会写一些小demo,我自己觉得有用的会集中起来形成一个项目,本来想利用gitee的giteepage直接部署出来,但后面了解了下,它只支持官网之类的静态页面,无法与后台数......
  • 课设实验报告 小组总和
    课设实验报告小组总和北京电子科技学院《信息安全工程技术应用》课程设计报告基于密码算法库的国密算法支持研究与运用小组成员姓名:20201327刘谨铭20201310何忠鑫......
  • cpp serialize vector and write into file for duration/persistence via jsoncpp
    //Book.h#pragmaonce#include<chrono>#include<ctime>#include<fstream>#include<iostream>#include<jsoncpp/json/json.h>#include<iomanip>#include<st......