一.基础语法(wd是驱动)
单个参数获取
wd.find_element(By.CSS_SELECTOR, 'CSS Selector参数')
多个参数获取
wd.find_elements(By.CSS_SELECTOR, 'CSS Selector参数')
二.id(用#)
wd.find_element(By.CSS_SELECTOR, '#id参数')
三.class(用.)
wd.find_element(By.CSS_SELECTOR, '.class参数')
四.tag(不用其他)
wd.find_elements(By.CSS_SELECTOR, 'tag名')
五.父子层级
直接子元素
wd.find_elements(By.CSS_SELECTOR, '父元素1 > 子元素2 > 子子元素3')
后代元素
wd.find_elements(By.CSS_SELECTOR, '父元素1 后代元素2 后代的后代元素3 ')
六.根据元素属性选择
wd.find_elements(By.CSS_SELECTOR, '[属性名=属性值] ') 属性值
wd.find_elements(By.CSS_SELECTOR, 标签名'[属性名=属性值] ') 某节点属性值
wd.find_elements(By.CSS_SELECTOR, 标签名'[属性名*=属性值] ') 某节点的属性中包含属性值
wd.find_elements(By.CSS_SELECTOR, 标签名'[属性名^=属性值] ') 某节点的属性以属性值开头
wd.find_elements(By.CSS_SELECTOR, 标签名'[属性名$=属性值] ') 某节点的属性以属性值结尾
wd.find_elements(By.CSS_SELECTOR, 标签名'[属性名1=属性值1][属性名1=属性值1]')
七.语法联合使用
1.组选择:
#id1 > .class2,#id1 > tag名1
id属性值为id1的子元素中class属性值为class2的元素 和 id属性值为id1的且子元素tag名为tag名1的元素
注意:查到的数据元素,是HTML文档中出现的次序
2.按次序选择
:nth-child(n) 所有元素的第n个子节点元素
span:nth-child(2) 正数第二个且是span的子节点
a:nth-last-child(1) 倒数第一个且是a元素的子节点
span:nth-of-type(1) 第一个span类型的子元素
a:nth-last-of-type(1) 倒数第一个a类型的子节点元素
a:nth-child(even) 偶数且是a的节点
a:nth-child(odd) 奇数且是a的节点
3.兄弟节点选择
相邻兄弟节点用+,所有兄弟节点用~
div+i+span div紧跟的后面的i后面紧跟的span节点
div+i~span div紧跟的后面的i后面所有的span节点