




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第你必須了解Selenium使用CSS定位總結(jié)大部分人在使用selenium定位元素時,用的是xpath定位,CSS定位往往被忽略掉了,其實css定位也有它的價值,css定位更快,語法更簡潔
一、CSS選擇器
常見符號:
.表示class選擇器
表示子元素,層級
一個空格也表示子元素,但是是所有的后代子元素,相當(dāng)于xpath中的相對路徑
二、CSS:屬性定位
css可以通過元素的id、class、標(biāo)簽這三個常規(guī)屬性直接定位到
如下是百度輸入框的的html代碼:
inputid=kw>
css用#號表示id屬性,如:#kw
css用.表示class屬性,如:.s_ipt
css直接用標(biāo)簽名稱,無任何標(biāo)示符,如:input
三、CSS:其它屬性
css可以通過標(biāo)簽、class、id這三個常規(guī)屬性定位,也可以通過其它屬性定位
以下是定位其它屬性的格式[name=wd][autocomplete=off][maxlength=255]
四、CSS:標(biāo)簽
css可以通過標(biāo)簽與屬性的組合來定位元素
input.s_iptinput#kwinput[id=kw]
五、CSS:層級關(guān)系
//form的id屬性form#formspaninput
//form的class屬性form.fmspaninput
六、CSS:索引
css也可以通過索引來定位子元素
Select控件第三個Opel
#selectselectoption:nth-child(3)CheckBox第一個Volvo
#checkboxinput:nth-child(1)CheckBox第二個Saab
#checkboxinput:nth-child(4)RadioBox第二個Saab
#radioinput:nth-child(4)
七、CSS:邏輯運算
css同樣也可以實現(xiàn)邏輯運算,同時匹配兩個屬性,跟xpath不一樣
[type=checkbox][name=checkbox1]
八、百度搜索框?qū)嵗?/p>
拿百度的搜索框來具體看看CSS定位
定位輸入框
單一屬性定位
typeselector
driver.find_element_by_css_selector(input)id定位
driver.find_element_by_css_selector(#kw)class定位
driver.find_element_by_css_selector(.s_ipt)其他屬性定位
driver.find_element_by_css_selector([name=wd])driver.find_element_by_css_selector([type=text])
組合屬性定位
id組合屬性定位
driver.find_element_by_css_selector(input#kw)class組合屬性定位
driver.find_element_by_css_selector(input.s_ipt)其他屬性組合定位
driver.find_element_by_css_selector(input[name=wd])僅有屬性名,沒有值也可以
driver.find_element_by_css_selector(input[name])兩個其他屬性組合定位
driver.find_element_by_css_selector([name=wd][autocomplete=off])
九、百度首頁點擊按鈕為例
模糊匹配屬性值方法
1屬性值由多個空格隔開,匹配其中一個值的方法
driver.find_element_by_css_selector(input[class~=btn])2匹配屬性值為字符串開頭的方法
driver.find_element_by_css_selector(input[class^=btn])3匹配屬性值字符串結(jié)尾的方法
driver.find_element_by_css_selector(input[class$=s_btn])
十、CSS與Xpath定位的區(qū)別
CSS
css可以通過元素的id、class、標(biāo)簽這三個常規(guī)屬性直接定位
①.css用#號表示id屬性,如:
id=kw可以寫成:#kw
②.css用.表示class屬性,如:
>③.css直接用標(biāo)簽名稱,無任何標(biāo)識符,如:input
Xpath
xpath也可以通過元素的id、name、class這些屬性定位
①.用xpath通過id屬性定位
driver.find_element(By.XPATH,//[@id=kw])
②.用xpath通過name屬性定位
driver.find_element(By.XPATH,//[@name=wd])
③.用xpath通過class屬性定位
driver.find_element(By.XPATH,//*[@>
CSS
css除了上述以外,也可以通過其他屬性定位
①.css通過name屬性定位:
driver.find_element(By.CSS_SELECTOR,[name=wd])
②.css通過autocomplete屬性定位:
driver.find_element(By.CSS_SELECTOR,[autocomplete=off])
③.css通過type屬性定位:
driver.find_element(By.CSS_SELECTOR,[type=text])
Xpath
沒有上述屬性,可以通過其他屬性定位
driver.find_element(By.XPATH,//*[@autocomplete=off])
CSS
css頁可以通過標(biāo)簽與屬性的組合來定位元素
①.css通過標(biāo)簽與class屬性的組合定位driver.find_element(By.CSS_SELECTOR,input.s_ipt)
②.css通過標(biāo)簽與id屬性的組合定位driver.find_element(By.CSS_SELECTOR,input#kw)
③.css通過標(biāo)簽與其他屬性組合定位driver.find_element(By.CSS_SELECTOR,input[id=kw])
Xpath
1、如果同一個屬性,同名的比較多,可以通過標(biāo)簽篩選
①.用xpath通過其他屬性定位driver.find_element(By.XPATH,//input[@autocomplete=off])
②.用xpath通過id屬性定位driver.find_element(By.XPATH,//input[@id=kw])
③.用xpath通過name屬性定位driver.find_element(By.XPATH,//name[@id=wd])
CSS
如://form[@id=form]/span/input和//form[@>①.css通過層級關(guān)系定位driver.find_element(By.CSS_SELECTOR,form#formspaninput)
②.css通過層級關(guān)系定位driver.find_element(By.CSS_SELECTOR,form.fmspaninput)
Xpath
1、如果一個元素,他的屬性不明顯,無法直接定位,可以先找到他的父元素,找到父元素,再找下一級就能定位
①.通過定位父元素來定位input輸入框driver.find_element(By.XPATH,//span[@id=s_kw_wrap]/input)
②.通過定位爺元素來定位input輸入框driver.find_element(By.XPATH,//form[@id=form]/span/input)
CSS
1、css也可以通過索引option:nth-child(1)來定位子元素
①.選擇第一個子元素driver.find_element(By.CSS_SELECTOR,select#nroption:nth-child(1))
②.選擇第二個子元素driver.find_element(By.CSS_SELECTOR,select#nroption:nth-child(2))
③.選擇第三個子元素driver.find_element(By.CSS_SELECTOR,select#nroption:nth-child(3))
Xpath
1、可以通過排序定位
①.用xpath定位第一位driver.find_element(By.XPATH,//select[@id=nr]/option[1])
②.用xpath定位第二位driver.find_element(By.XPATH,//select[@id=nr]/option[2])
③.用xpath定位第三位driver.find_element(By.XPATH,//select[@id=nr]/option[3])
CSS
driver.find_element(By.CSS_SELECTOR,input:contAIns(kw))
Xpath
1、xpath強大的模糊匹配
2、by_partial_link,模糊匹配定位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)種植與資源利用開發(fā)合同
- 水電安裝工程分包合同范本4篇
- 合同中的知識產(chǎn)權(quán)條款5篇
- 經(jīng)營性抵押合同范本3篇
- 內(nèi)控制度整改的合同8篇
- 關(guān)于安全施工協(xié)議書模板7篇
- 勞動保潔合同5篇
- 五金加工部承包經(jīng)營合同7篇
- 機器售后保修服務(wù)合同8篇
- 企業(yè)多人合作經(jīng)營合同8篇
- 進氣歧管工藝編制與典型工序夾具設(shè)計
- GB/T 5224-2003預(yù)應(yīng)力混凝土用鋼絞線
- GB 439-1990航空噴氣機潤滑油
- 全文圖解“新時代十年的偉大成就”PPT
- 汽輪機課程設(shè)計(中壓缸)
- 清洗劑安全技術(shù)說明書(MSDS)報告
- 大酒店員工離職交接表
- 2022年廣東省深圳市中考化學(xué)真題試卷
- 國際財務(wù)管理教學(xué)ppt課件(完整版)
- 2022年江西省南昌市中考一模物理試卷
- 光引發(fā)劑的性能與應(yīng)用
評論
0/150
提交評論