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")
猪猪侠要努力呀!