selenium的css定位與xpath定位

大部分人在使用selenium定位元素時请琳,用的是xpath定位,因為xpath基本能解決定位的需求层坠。css定位往往被忽略掉了,其實css定位也有它的價值刁笙,css定位更快破花,語法更簡潔。
一:css:屬性定位

1疲吸、css可以通過元素的id座每、class、標簽這三個常規(guī)屬性直接定位摘悴,如下:
①. css用#號表示id屬性峭梳,如:
id=“kw” 可以寫成:#kw
②. css用.表示class屬性,如:
class="s_ipt"可以寫成:.s_ipt
③. css直接用標簽名稱蹂喻,無任何標識符葱椭,如:input

二:css:其他屬性
1、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']")

三:css:標簽
1、css頁可以通過標簽與屬性的組合來定位元素窃祝,如下:
①. css通過標簽與class屬性的組合定位driver.find_element(By.CSS_SELECTOR,"input.s_ipt")
②. css通過標簽與id屬性的組合定位driver.find_element(By.CSS_SELECTOR,"input#kw")
③. css通過標簽與其他屬性組合定位driver.find_element(By.CSS_SELECTOR,"input[id='kw']")

四:css:層級關(guān)系
1掐松、如://form[@id=‘form’]/span/input和//form[@class=‘fm’]/span/input
①. css通過層級關(guān)系定位driver.find_element(By.CSS_SELECTOR,"form#form>span>input")
②. css通過層級關(guān)系定位driver.find_element(By.CSS_SELECTOR,"form.fm>span>input")

五:css:索引
1踱侣、css也可以通過索引option:nth-child(1)來定位子元素粪小,如下:
①. 選擇第一個子元素driver.find_element(By.CSS_SELECTOR,"select#nr>option:nth-child(1)")
②. 選擇第二個子元素driver.find_element(By.CSS_SELECTOR,"select#nr>option:nth-child(2)")
③. 選擇第三個子元素driver.find_element(By.CSS_SELECTOR,"select#nr>option:nth-child(3)")

六:css:邏輯運算
1、css同時匹配兩個屬性抡句,不需要and關(guān)鍵字driver.find_element(By.CSS_SELECTOR,"input[id='kw'][name='wd']")

七:css:模糊匹配driver.find_element(By.CSS_SELECTOR,"input:contains('kw')")

一探膊、xpath:屬性定位
1、xpath也可以通過元素的id待榔、name逞壁、class這些屬性定位流济,如下:
①. 用xpath通過id屬性定位
driver.find_element(By.XPATH,"http://[@id='kw']")
②. 用xpath通過name屬性定位
driver.find_element(By.XPATH,"http://
[@name='wd']")
③. 用xpath通過class屬性定位
driver.find_element(By.XPATH,"http://*[@class='s_ipt']")

二、xpath:其他屬性
1腌闯、沒有上述屬性绳瘟,可以通過其他屬性定位,如下:
driver.find_element(By.XPATH,"http://*[@autocomplete='off']")

三姿骏、xpath:標簽
1糖声、如果同一個屬性,同名的比較多分瘦,可以通過標簽篩選下
2蘸泻、如果不想制定標簽名稱,可以用號表示任意標簽
3嘲玫、如果想制定具體某個標簽悦施,就可以直接寫標簽名稱
①. 用xpath通過其他屬性定位driver.find_element(By.XPATH,"http://input[@autocomplete='off']")
②. 用xpath通過id屬性定位driver.find_element(By.XPATH,"http://input[@id='kw']")
③. 用xpath通過name屬性定位driver.find_element(By.XPATH,"http://name[@id='wd']")

四、xpath:層級
1去团、如果一個元素抡诞,他的屬性不明顯,無法直接定位土陪,可以先找到他的父元素
2沐绒、找到父元素,再找下一級就能定位
①. 通過定位父元素來定位input輸入框driver.find_element(By.XPATH,"http://span[@id='s_kw_wrap']/input")
②. 通過定位爺元素來定位input輸入框driver.find_element(By.XPATH,"http://form[@id='form']/span/input")

五旺坠、xpath:索引
1乔遮、如果一個元素和他同級的標簽一樣,無法通過層級定位
2取刃、可以通過排序定位
①. 用xpath定位第一位driver.find_element(By.XPATH,"http://select[@id='nr']/option[1]")
②. 用xpath定位第二位driver.find_element(By.XPATH,"http://select[@id='nr']/option[2]")
③. 用xpath定位第三位driver.find_element(By.XPATH,"http://select[@id='nr']/option[3]")

六蹋肮、xpath:邏輯運算
1、xpath還有一個比較強的功能璧疗,是可以多個屬性邏輯運算的坯辩,可以支持and、or崩侠、not
2漆魔、一般用的比較多的是and運算,同時滿足兩個屬性driver.find_element(By.XPATH,"http://select[@id='nr' and @autocomplete='off']")
七却音、xpath:模糊匹配
1改抡、xpath強大的模糊匹配
2、掌握了模糊匹配功能系瓢,基本上沒有定位不到的
3阿纤、by_partial_link,模糊匹配定位
driver.find_element(By.XPATH,"http://*[contains(text(),'hao123')]")

作者:Rc神
鏈接:http://www.reibang.com/p/57167659d920
來源:簡書

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末夷陋,一起剝皮案震驚了整個濱河市欠拾,隨后出現(xiàn)的幾起案子胰锌,更是在濱河造成了極大的恐慌,老刑警劉巖藐窄,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件资昧,死亡現(xiàn)場離奇詭異,居然都是意外死亡荆忍,警方通過查閱死者的電腦和手機榛搔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來东揣,“玉大人践惑,你說我怎么就攤上這事∷晃裕” “怎么了尔觉?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長芥吟。 經(jīng)常有香客問我侦铜,道長,這世上最難降的妖魔是什么钟鸵? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任钉稍,我火速辦了婚禮,結(jié)果婚禮上棺耍,老公的妹妹穿的比我還像新娘贡未。我一直安慰自己,他們只是感情好蒙袍,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布俊卤。 她就那樣靜靜地躺著,像睡著了一般害幅。 火紅的嫁衣襯著肌膚如雪消恍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天以现,我揣著相機與錄音狠怨,去河邊找鬼惧磺。 笑死耻陕,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沸枯。 我是一名探鬼主播无宿,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼茵汰,長吁一口氣:“原來是場噩夢啊……” “哼枢里!你這毒婦竟也來了孽鸡?” 一聲冷哼從身側(cè)響起蹂午,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎彬碱,沒想到半個月后豆胸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡巷疼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年晚胡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嚼沿。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡估盘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骡尽,到底是詐尸還是另有隱情遣妥,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布攀细,位于F島的核電站箫踩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谭贪。R本人自食惡果不足惜境钟,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望俭识。 院中可真熱鬧慨削,春花似錦、人聲如沸套媚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凑阶。三九已至猿规,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宙橱,已是汗流浹背姨俩。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留师郑,地道東北人环葵。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像宝冕,于是被迫代替她去往敵國和親张遭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容