selenium--css表达式的踩坑与总结

一.基础语法(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的子节点

selenium--css表达式的踩坑与总结_第1张图片

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节点

你可能感兴趣的:(css,自动化,selenium,测试工具)