まず、環境
ブラウザ:クローム77.0.3865.75
セレンバージョン:PIPショーセレンコマンドcmd表示3.141.0
二、XPathの概要
1.xpath + ID /名前/クラス場所:
driver.find_element_by_xpath( '//タグ名[@ ID = "id値"]')
driver.find_element_by_xpath( '//タグ名[@名= "名前の値"]')
driver.find_element_by_xpath( '//タグ名[@クラス= "クラス値"]')
あなたはラベルを指定したい場合は、私たちが指定されていない場合、ラベル名は直接、使用を特定のタグの名前を書きます*
例:
(Driver.find_element_by_xpath#' [ID = "kWの" @] // * ' .send_keys()' パイソン')#* 任意のラベルの代わりに #のdriver.find_element_by_xpath(' // INPUT [ID @ = "キロワット"] ') .send_keys(' パイソン')は、特定のラベリング#
2.xpath +他の属性のオリエンテーション:
driver.find_element_by_xpath( '//タグ名[属性名@ = "属性値"]')
3.xapthレベル位置決め
XPathは、直接ターゲットにない場合は、第一層の位置によって、その父や祖父、そして層を見つけることができます
父親を探すためにそれを使用して、与えられています
入力、エラー結果を見つけるための場所#父の入力ボックス #のdriver.find_element_by_xpath( '//スパン[クラス@ = "BG s_ipt_wr quickdeleteラップ"] /入力')。Send_keys( 'Pythonの) 彼を配置#入力見つけるために祖父入力ボックス #1 driver.find_element_by_xpath( '// * [@ ID = "フォーム"] /スパン入力/')。send_keys( 'パイソン')
4.xpathインデックスは、XPathの同じラベルが、兄弟要素を位置決めする、インデックスが1から始まる算出される指標、及びPythonの異なるを使用し
#xpath索引,兄弟标签的定位,索引是从1开始计算,跟python的索引不同 text1=driver.find_element_by_xpath('//ul[@class="custom_dot para-list list-paddingleft-1"]/li[1]/div').text text2=driver.find_element_by_xpath('//ul[@class="custom_dot para-list list-paddingleft-1"]/li[2]/div').text text3=driver.find_element_by_xpath('//ul[@class="custom_dot para-list list-paddingleft-1"]/li[3]/div').text print(text1,text2,text3)
5.xpath 逻辑计算 and/or/not,多个属性进行查找
driver.find_element_by_xpath('//标签名[@属性1=“属性值1” and @属性2=“属性值2”]')
#xpath多属性 text=driver.find_element_by_xpath('//div[@class="para" and @label-module="para"]') print(text)
6.xpath模糊匹配,contains()用的多
driver.find_element_by_xpath('//标签名[contains(text(),"要匹配的值")]')
driver.find_element_by_xpath('//标签名[contains(@属性名,"要匹配的值")]')
driver.find_element_by_xpath('//标签名[starts-with(@属性名,"要匹配的值")]')
#driver.find_element_by_xpath('//*[contains(text(),"hao123")]').click() #xpath也可以模糊匹配某个属性 #driver.find_element_by_xpath('//*[contains(@id,"kw")]').send_keys('yangxuan') #xpath可以模糊匹配以什么开头 driver.find_element_by_xpath('//*[starts-with(@id,"kw")]').send_keys('yx')