天天看點

selenium

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 屬性都沒有,這時候也可以通過其它屬性定位到

selenium

 xpath:标簽 1.有時候同一個屬性,同名的比較多,這時候可以通過标簽篩選下,定位更準一 點

2.如果不想制定标簽名稱,可以用*号表示任意标簽

3.如果想制定具體某個标簽,就可以直接寫标簽名稱

selenium

 4.xpath:層級

selenium

5.xpath:索引

selenium

6 xpath:邏輯運算

1.xpath 還有一個比較強的功能,是可以多個屬性邏輯運算的,可以支援與(and)、 或(or)、非(not)

2.一般用的比較多的是 and 運算,同時滿足兩個屬性

selenium

 7 xpath:模糊比對

1.xpath 還有一個非常強大的功能,模糊比對

2.掌握了模糊比對功能,基本上沒有到位不到的

3.比如我要定位百度頁面的超連結“hao123”,在上一篇中講過可以通過 by_link,也可以通過 by_partial_link,模糊比對定位到。當然 xpath 也可以有 同樣的功能,并且更為強大

selenium

 css 定位文法

1 css:屬性定位

1.css 可以通過元素的 id、class、标簽這三個正常屬性直接定位到

2.css 用#号表示 id 屬性,如:#kw

3.css 用.表示 class 屬性,如:.s_ipt

4.css 直接用标簽名稱,無任何标示符,如:input

selenium

css:其它屬性

1.css 除了可以通過标簽、class、id 這三個正常屬性定位外,也可以通過其它 屬性定位

selenium

 css:标簽

1.css 頁可以通過标簽與屬性的組合來定位元素

selenium

 css:層級關系

selenium

css:索引

css 也可以通過索引 option:nth-child(1)來定位子元素,這點與 xpath 寫法 用很大差異,其實很好了解,直接翻譯過來就是第幾個小孩

selenium

6 css:邏輯運算

1.css 同樣也可以實作邏輯運算,同時比對兩個屬性,這裡跟 xpath 不一樣,無 需寫 and 關鍵字