selenium
定位方法:
前八種是使用頻率較高的
1.id 定位:find_element_by_id(self, id_)
2.name 定位:find_element_by_name(self, name)
3.class 定位:find_element_by_class_name(self, name)
4.tag 定位:find_element_by_tag_name(self, name)
5.link 定位:find_element_by_link_text(self, link_text)
6.partial_link 定位 find_element_by_partial_link_text(self, link_text)
7.xpath 定位:find_element_by_xpath(self, xpath)
8.css 定位:find_element_by_css_selector(self, css_selector)
9.id 複數定位 find_elements_by_id(self, id_)
10.name 複數定位 find_elements_by_name(self, name)
11.class 複數定位 find_elements_by_class_name(self, name)
12.tag 複數定位 find_elements_by_tag_name(self, name)
13.link 複數定位 find_elements_by_link_text(self, text)
14.partial_link 複數定位 find_elements_by_partial_link_text(self, link_text)
15.xpath 複數定位 find_elements_by_xpath(self, xpath)
16.css 複數定位 find_elements_by_css_selector(self, css_selector)
參數化的方法
17.find_element(self, by='id', value=none)
18.find_elements(self, by='id', value=none)
xpath 定位
xpath:屬性定位 1.xptah 也可以通過元素的 id、name、class 這些屬性定位
xpath:其它屬性 如果一個元素 id、name、class 屬性都沒有,這時候也可以通過其它屬性定位到
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CO1gTOzMGN1UGMiJmYjRDOxYzX5EDNxQTM1AzLcFTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL3M3Lc9CX6MHc0RHaiojIsJye.png)
xpath:标簽 1.有時候同一個屬性,同名的比較多,這時候可以通過标簽篩選下,定位更準一 點
2.如果不想制定标簽名稱,可以用*号表示任意标簽
3.如果想制定具體某個标簽,就可以直接寫标簽名稱
4.xpath:層級
5.xpath:索引
6 xpath:邏輯運算
1.xpath 還有一個比較強的功能,是可以多個屬性邏輯運算的,可以支援與(and)、 或(or)、非(not)
2.一般用的比較多的是 and 運算,同時滿足兩個屬性
7 xpath:模糊比對
1.xpath 還有一個非常強大的功能,模糊比對
2.掌握了模糊比對功能,基本上沒有到位不到的
3.比如我要定位百度頁面的超連結“hao123”,在上一篇中講過可以通過 by_link,也可以通過 by_partial_link,模糊比對定位到。當然 xpath 也可以有 同樣的功能,并且更為強大
css 定位文法
1 css:屬性定位
1.css 可以通過元素的 id、class、标簽這三個正常屬性直接定位到
2.css 用#号表示 id 屬性,如:#kw
3.css 用.表示 class 屬性,如:.s_ipt
4.css 直接用标簽名稱,無任何标示符,如:input
css:其它屬性
1.css 除了可以通過标簽、class、id 這三個正常屬性定位外,也可以通過其它 屬性定位
css:标簽
1.css 頁可以通過标簽與屬性的組合來定位元素
css:層級關系
css:索引
css 也可以通過索引 option:nth-child(1)來定位子元素,這點與 xpath 寫法 用很大差異,其實很好了解,直接翻譯過來就是第幾個小孩
6 css:邏輯運算
1.css 同樣也可以實作邏輯運算,同時比對兩個屬性,這裡跟 xpath 不一樣,無 需寫 and 關鍵字