一 前言
創(chuàng)新互聯(lián)主營(yíng)宏偉網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件定制開(kāi)發(fā),宏偉h5小程序設(shè)計(jì)搭建,宏偉網(wǎng)站營(yíng)銷(xiāo)推廣歡迎宏偉等地區(qū)企業(yè)咨詢(xún)元素定位,是操作元素的第一步,也是WebUI自動(dòng)化的難點(diǎn)和核心。
二 元素定位方法
selenium提供了內(nèi)置的方法完成對(duì)待操作元素的定位,主要分為8類(lèi),其中,每類(lèi)又可細(xì)分為定位單個(gè)元素和定位多個(gè)元素,另外還提供了2個(gè)私有方法。詳細(xì)如下:
定位單個(gè)元素
· find_element_by_id
· find_element_by_name
· find_element_by_xpath
· find_element_by_link_text
· find_element_by_partial_link_text
· find_element_by_tag_name
· find_element_by_class_name
· find_element_by_css_selector
定位多個(gè)元素(注意elements,返回一個(gè)列表)
· find_elements_by_id
· find_elements_by_name
· find_elements_by_xpath
· find_elements_by_link_text
· find_elements_by_partial_link_text
· find_elements_by_tag_name
· find_elements_by_class_name
· find_elements_by_css_selector
兩個(gè)私有方法(從基本方法衍生)
find_element 和 find_elements
這兩個(gè)私有方法實(shí)質(zhì)是分別對(duì)應(yīng)上面介紹的單元素定位和多元素定位的8類(lèi)方法,如下所示:
from selenium.webdriver.common.by import By
driver.find_element(By.XPATH, '//button[text()="Some text"]')
driver.find_elements(By.XPATH, '//button')
By類(lèi)的可用屬性
ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
三 定位屬性說(shuō)明
以百度頁(yè)面為例,說(shuō)明各定位屬性在頁(yè)面源碼中的表示方法,如下:
打開(kāi)百度頁(yè)面,按鍵盤(pán)F12,打開(kāi)開(kāi)發(fā)工具,使用左上角的箭頭,點(diǎn)擊頁(yè)面元素,即可調(diào)轉(zhuǎn)到該元素的源碼部分。
By_id : “kw”
By_name:”wd”
By_class_name:”s_ipt”
By_tag_name: “input”
By_link_text: ”新聞”
By_partial_link_text : “新”
Xpath和css可以直接使用開(kāi)發(fā)工具獲得,方法是:
選中元素-à右鍵-àcopy-àcopy xpath/copy selector
By_xpath: “//*[@id="kw"]”
By_css_selector: ” #kw”
四 總結(jié)
只所以說(shuō)WebUI元素定位是核心,是因?yàn)椴僮髟厍氨仨毾纫ㄎ坏皆?;只所以說(shuō)元素定位又是難點(diǎn)所在,是因?yàn)閟elenium雖然提供了定位元素的方法,但有些場(chǎng)景直接套用方法會(huì)報(bào)錯(cuò),如元素是內(nèi)嵌到frame,存在多個(gè)相同元素,彈框、加載延時(shí)等,此時(shí)需要對(duì)元素進(jìn)行分析,然后采取應(yīng)對(duì)方法,這也是webui自動(dòng)化的經(jīng)驗(yàn)積累所在。下篇文章會(huì)專(zhuān)門(mén)介紹兩種元素定位思想。
其他資源:
關(guān)于python selenium元素定位方法的視頻講解,請(qǐng)參看:http://i.youku.com/weiworld521 第 25 節(jié)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。