python+selenium4--Css语法定位元素
python+selenium4--Css语法定位元素
常见符号:
#表示 id选择器
.表示 class选择器
>表示子元素,层级
一个空格也表示子元素,但是是所有的后代子元素,相当于 xpath 中的相对路径
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
driver.implicitly_wait(10)
#通过id定位 #表示id
driver.find_element_by_css_selector("#kw").send_keys("1111")
#通过class定位 .表示class
driver.find_element_by_css_selector(".s_ipt").send_keys("css定位")
#通过标签定位和id组合定位
driver.find_element_by_css_selector("input#kw").send_keys("ccc")
#通过层级关系定位 > 表示上下级
driver.find_element_by_css_selector("form#form>span>input#kw").send_keys("css")
#其他属性定位 需要加[]
# <input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd"/>
driver.find_element_by_css_selector("[autocomplete='off']").send_keys("xxx")
driver.find_element_by_css_selector("[maxlength='255']").send_keys("xxx")
driver.find_element_by_css_selector("[name='wd']").send_keys("xxx")
#css也可以通过索引nth-child(1)来定位子元素,直接翻译过来就是第几个小孩
driver.find_element_by_css_selector(".mnav:nth-child(2)").click()
# nth-of-type(3)
driver.find_element_by_css_selector("a.mnav:nth-of-type(3)").click()
#同时满足两个属性
driver.find_element_by_css_selector("[autocomplete='off'][name='wd']").send_keys("Xxx")
sleep(3)
driver.close()