css选择器语法使用(以selenium为例)

"""
通过css选择器查找元素
"""
# 查找类名属性为plant的第一个元素
element = wd.find_element(By.CSS_SELECTOR, ".plant")
# 查找tag属性名为div的第一个元素
element = wd.find_element(By.CSS_SELECTOR, "div")
# 查找id属性为searchtext的第一个元素
element = wd.find_element(By.CSS_SELECTOR, "#searchtext")
# css支持通过任何属性来选择元素,其他的都用[]来表示
element = wd.find_element(By.CSS_SELECTOR, '[href]')
element = wd.find_element(By.CSS_SELECTOR, '[href="https://www.baidu.com"]')
# 也可以混合使用,如查找class属性为plant,name值为sknet的元素
element = wd.find_element(By.CSS_SELECTOR, ".plant[name='sknet']")
# 查找id为container的子元素为div标签的
element = wd.find_element(By.CSS_SELECTOR, "#container > div")
# 查找id为layer1的后代元素为span标签的
element = wd.find_element(By.CSS_SELECTOR, "#layer1   span")

"""
同时选择多个类型的节点
"""
# 选择class为plant和id为bottom的所有元素
wd.find_elements(By.CSS_SELECTOR, ".plant , #bottom")
# 选择id为t1下的所有span标签和p标签
wd.find_elements(By.CSS_SELECTOR, "#t1 span,#t1 p")

"""
按次序选择css节点
"""
# 选择span标签,且该span标签是父元素的第二个子节点
wd.find_elements(By.CSS_SELECTOR, "span:nth-child(2)")
# 选择所有父元素的第二个子节点
wd.find_elements(By.CSS_SELECTOR, ":nth-child(2)")
# 选择id为t1下的第二个子节点
wd.find_elements(By.CSS_SELECTOR, "#t1 > :nth-child(2)")
# 选择span标签,且该span标签是父元素的倒数第二个字节点
wd.find_elements(By.CSS_SELECTOR, "span:nth-last-child(2)")
# 选择父元素下第二个span标签
wd.find_elements(By.CSS_SELECTOR, "span:nth-of-type(2)")
# 选择父元素下倒数第二个span标签
wd.find_elements(By.CSS_SELECTOR, "span:nth-last-of-type(2)")
# 选择id为t1下的所有奇数子节点
wd.find_elements(By.CSS_SELECTOR, "#t1 > :nth-child(odd)")
# 选择id为t1下的所有偶数子节点
wd.find_elements(By.CSS_SELECTOR, "#t1 > :nth-child(even)")
# 选择id为t1下的所有偶数的p标签
wd.find_elements(By.CSS_SELECTOR, "#t1 > p:nth-of-type(even)")

"""
包含字符串
 a[href*="fei"] 选择a节点,里面的href属性值包含了fei
 a[href^="fei"] 选择a节点,里面的href属性值以fei开头
 a[href$=".cn"] 选择a节点,里面的href属性值以.cn结尾
"""

"""
兄弟节点的选择
"""
# 选择h3后面的紧跟的兄弟节点span
wd.find_elements(By.CSS_SELECTOR, "h3 + span")
# 选择h3后面的所有的兄弟节点span
wd.find_elements(By.CSS_SELECTOR, "h3 ~ span")

 

posted on 2023-04-02 16:56  mlllily  阅读(138)  评论(0编辑  收藏  举报