元素定位一共有八種方法:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL3EjMzATN2QTMtcDNyMTN1ATMxkDM0ATMyAjMtgDNzIjM58CX0ATMyAjMvwFO0MjMykzLcd2bsJ2Lc12bj5ycn9Gbi52YuAjMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
1. id定位
find_element_by_id()
頁面元素裡有一個且唯一的id="login",如下面:
可以定位到【登入】按鈕的方法有
①、driver.find_element_by_id(‘login’)
②、driver.find_element_by_css_selector(‘#login’)
③、driver.find_element_byxpath("//*[@id='login']")
2. name定位
find_element_by_name()
如下圖:
driver.find_element_name('button')
3. class_name
class标準屬性,不唯一,通常找一類元素
<div class='cheese'><span>Cheddar</span></div>
4. tag_name
tag名如果是唯一的,可以根據tag定位
如果html有如下:
<iframe src='...'></iframe>
ele=driver.find_element_by_tag_name('iframe')
eles=driver.find_elements_by_tag_name('iframe')
如下圖,可以通過iframe定位到輸入框
5.通過連結文本選擇元素
對于連結,可以通過連結其連結文本的内容
比如百度的新聞連結
6.partial_link
甚至通過部分連結文本選擇元素
ele=driver.find_element_partial_link_text('123')
7.xpath定位
find_element_by_xpath()
通過//div//p可以查找任意div節點下面的p節點,無論p節點是否是直屬節點
eles = food.find_elements_by_xpath('//div//p')
8.CSS定位
find_element_by_css_selector(‘div > *’)