今天先總結(jié)下selenium對元素的定位方法
一.網(wǎng)頁定位
網(wǎng)頁定位即根據(jù)具體網(wǎng)頁元素定位出我們所需要的元素
可根據(jù)class,id,tag等元素進(jìn)行定位
find_element(self,by='id',value=None)
find_element_by_class_name(self,name)
find_element_by_css_selctor(self,css_selector)
find_element_by_id(self,id_)
find_element_by_link(self,link_text)
find_element_by_name(self,name)
find_element_by_partial_link_text(self,link_text)
find_element_by_tag_name(self,name)
find_element_by_xpath(self,xpath)
這里應(yīng)注意的是element,沒加s,意思就是它返回的是你找到的元素的第0個
如果你寫的elements,如find_elements_by_id(self,id),則它返回的是一個元素的列表,如果你想用某個元素的屬性或方法,則應(yīng)該給個具體的下標(biāo)
二.內(nèi)容定位
內(nèi)容定位即獲取我們得到的elelment的一些內(nèi)容,如text,href,title等。
最常見的方法是直接.text,但這個方法只能獲取兩個標(biāo)簽的內(nèi)容
如果你想獲取的是它的屬性信息,或者遇到一個單標(biāo)簽,那這個方法就行不通了
如下面的百度首頁
如果你想獲取“百度一下”這四個字,你就要進(jìn)入標(biāo)簽的屬性里去
這是要運(yùn)行這個代碼
text=browser.find_element_by_id('su')
print(text.get_attribute('value'))
這里的get_attribute(value),從字面意思就可以知道,得到屬性的內(nèi)容
如果屬性里面又有其子元素,如value={title='123',url='456'}(這里只是舉例)
那么上面代碼里的text還包含了一些內(nèi)容,想要得到具體的內(nèi)容,還需用get()
s=eval(text)
title=s.get('title')