方法一:通過(guò)元素節(jié)點(diǎn)信息ID來(lái)定位:
driver.find_element_by_id("kw")
方法二:通過(guò)元素的xpath 路徑:
driver.find_element_by_xpath("http://*[@id='indexAdmin']/div[1]/div/div/div/div[2]/ul/li[4]/a")
方法三:通過(guò)元素的tag_name:
driver.find_element_by_tag_name("form")
方法四:通過(guò)元素link的text:
driver.find_element_by_link_text("新聞") 或者:通過(guò)xpath:
driver.find_element_by_xpath("http://*/div[@id='u1']/a[text()='新聞']") 通過(guò)text()這個(gè)在XPath中的函數(shù)竿刁。
方法五:通過(guò)partial link text定位:
driver.find_element_by_partial_link_text("主頁(yè)“).click()//選擇partial link text的時(shí)候片橡,要選擇一個(gè)比較唯一的字段贯涎。
方法六:通過(guò)class name定位:
driver.find_element_by_class_name("s_ipt")
方法7:通過(guò)name定位:
driver.find_element_by_name(”wd")//name這個(gè)屬性不是所有的節(jié)點(diǎn)都有钥组,如果用name來(lái)定位,就和by_id, by_class一樣的效果绑谣。
方法8:通過(guò)css定位:
css優(yōu)點(diǎn):語(yǔ)法比xpath簡(jiǎn)潔党窜,定位速度比xpath快。
css缺點(diǎn):不支持用邏輯運(yùn)算符來(lái)定位
# 表示id
.表示class
>表示子元素借宵,層級(jí)
1.? #通過(guò)id的屬性
driver.find_element_by_css_selector("#su")
2. #通過(guò)class_name屬性
driver.find_element_by_css_selector(".s_ipt")
3 #通過(guò)其它屬性
find_element_by_css_selector(["屬性=‘屬性值’ ]")
find_element_by_css_selector(["屬性=屬性值 ]") #引號(hào)在這里加不加都沒(méi)關(guān)系幌衣,不會(huì)影響定位。
實(shí)例2.1:find_element_by_css_selector("[style=‘display’]")
實(shí)例2.2:find_element_by_css_selector("[style=display]") ---------請(qǐng)注意這里屬性值沒(méi)有加引號(hào)
4. #通過(guò)父子關(guān)系定位:
find_element_by_css_selector(“input#id的屬性值>下級(jí)標(biāo)簽”)
實(shí)例:find_element_by_css_selector(“input#kw>div”)
5.#通過(guò)爺爺關(guān)系定位
如果父親標(biāo)簽中沒(méi)有可以標(biāo)識(shí)的唯一的元素的屬性值時(shí)壤玫,那我們可以考慮用爺爺標(biāo)簽結(jié)合屬性來(lái)定位元素豁护。例如:
實(shí)例:find_element_by_css_selector(“input#kw>divs>div#ko”)