Python selenium模塊實(shí)現(xiàn)定位過(guò)程解析
selenuim模塊定位方法
1,我們想要操作html頁(yè)面上的元素,首先必須要定位到這個(gè)元素上。每個(gè)元素都有他各自的屬性,比如id,name,class等,我們就通過(guò)這些屬性來(lái)定位元素。
2,我們先打開(kāi)一個(gè)網(wǎng)頁(yè),按F12來(lái)獲取這個(gè)網(wǎng)頁(yè)的源代碼,方便我們定位元素。
from selenium import webdriver driver=webdriver.Chrome() #啟動(dòng)谷歌瀏覽器 driver.get('http://www.baidu.com') #打開(kāi)百度網(wǎng)頁(yè)
3,按F12我們獲取到元素,鼠標(biāo)點(diǎn)擊圖片紅框中的標(biāo),然后把鼠標(biāo)放到你想要獲取的元素位置,然后右邊代碼會(huì)自動(dòng)定位。
定位方法詳解
1.用id定位
我們可以看到右邊代碼元素id為kw。
from selenium import webdriver driver=webdriver.Chrome() driver.get('http://www.baidu.com')s=driver.find_element_by_id(’kw’) #定位到id等于kw的元素(百度搜索框)s.send_keys(’您好’) #在搜索框內(nèi)輸入你好
2.用name來(lái)定位
#代碼同上driver.find_element_by_name(’wd’) #定位name為wd的元素
3.用classname來(lái)定位
#代碼同上driver.find_element_by_class_name(’s_ipt’) #通過(guò)類名定位,一般類名有重復(fù)的,不常使用
4.用標(biāo)簽來(lái)定位
#代碼同上driver.find_element_by_tag_name(’tag’) #標(biāo)簽定位,不常使用
5.定位a標(biāo)簽。
#代碼同上driver.find_element_by_link_text(’text’) #定位a標(biāo)簽的內(nèi)容完全匹配driver.find_element_by_partical_link_text(’text’) #定位a標(biāo)簽內(nèi)容模糊匹配
6.通過(guò)路徑來(lái)定位,常用相對(duì)路徑。
driver.find_element_by_xpath(//*[@id='kw']) #相對(duì)路徑定位注意:
html中,大多數(shù)的元素都具備id和name的屬性,并且id是唯一的,因此用id和name來(lái)定位元素是比較常見(jiàn)的方式。 不過(guò)有的元素并不具備id和name屬性,我們則可以用class name來(lái)定位元素。當(dāng)然我還可以用tag name來(lái)定位,但是標(biāo)簽名字太容易重復(fù),除非想定位一組相同標(biāo)簽的元素,否則一般不推薦使用
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python實(shí)現(xiàn)讀取類別頻數(shù)數(shù)據(jù)畫(huà)水平條形圖案例2. Java 基于UDP協(xié)議實(shí)現(xiàn)消息發(fā)送3. Python編寫(xiě)nmap掃描工具4. php5.6不能擴(kuò)展redis.so的解決方法5. python 爬取嗶哩嗶哩up主信息和投稿視頻6. 關(guān)于HTML5的img標(biāo)簽7. python 如何停止一個(gè)死循環(huán)的線程8. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫(huà)特效9. ASP.NET MVC前臺(tái)動(dòng)態(tài)添加文本框并在后臺(tái)使用FormCollection接收值10. PHP獲取時(shí)間戳等相關(guān)函數(shù)匯總
