Selenium 詳解xpath定位

2022-03-31 18:02:17 字數 3601 閱讀 1528

xpath定位在業界被戲稱為元素定位的"屠龍寶刀",寶刀在手,武林我有。現在我們就來詳解xpath定位方法。

xpath可以通過元素的屬性來定位,如id,name,class,type等屬性,元素的任意屬性值都可以通過xpath來定位,只要這個屬性值能唯一的標識乙個元素

**:

#

coding = utf-8

from time import

sleep

from selenium import

webdriver

#驅動檔案路徑

driverfile_path = r'

d:\coship\test_framework\drivers\chromedriver.exe'#

啟動瀏覽器

driver = webdriver.chrome(executable_path=driverfile_path)

#driver.get(r'

')#用xpath通過id屬性來定位搜尋框

#driver.find_element_by_xpath("//*[@id='kw']").send_keys('selenium')

#用xpath通過name屬性來定位搜尋框

##driver.find_element_by_xpath("//*[@name='wd']").send_keys('selenium')

#用xpath通過class屬性來定位搜尋框

#driver.find_element_by_xpath("//*[@class='s_ipt']").send_keys('selenium')

#用xpath通過maxlength屬性來定位搜尋框

#driver.find_element_by_xpath("//*[@maxlength='255']").send_keys('selenium')

#用xpath通過autocomplete屬性來定位搜尋框

driver.find_element_by_xpath("

//*[@autocomplete='off']

").send_keys('

selenium')

#等待5秒

sleep(5)#退出

driver.quit()

**:

#

coding = utf-8

from time import

sleep

from selenium import

webdriver

#驅動檔案路徑

driverfile_path = r'

d:\coship\test_framework\drivers\chromedriver.exe'#

啟動瀏覽器

driver = webdriver.chrome(executable_path=driverfile_path)

#driver.get(r'

')#用xpath限定標籤名為input並通過id屬性來定位搜尋框

driver.find_element_by_xpath("

//input[@id='kw']

").send_keys('

selenium')

#等待5秒

sleep(5)#退出

driver.quit()

如果乙個元素本身沒有可利用的屬性來定位,那麼我們可以先找到它的上一級(父元素),再通過上一級來找到它。以此類推,如果它的上一級也沒有可以定位的屬性值,那麼再找上上一級,直到找到可以定位到的那一級元素

**:

#

coding = utf-8

from time import

sleep

from selenium import

webdriver

#驅動檔案路徑

driverfile_path = r'

d:\coship\test_framework\drivers\chromedriver.exe'#

啟動瀏覽器

driver = webdriver.chrome(executable_path=driverfile_path)

#driver.get(r'

')#用xpath通過上上一級來定位搜尋框

driver.find_element_by_xpath("

//*[@id='form']/span/input

").send_keys('

selenium')

#等待5秒

sleep(5)#退出

driver.quit()

有時候,同一層級下有多個相同標籤的元素,那麼我們就只能通過標籤索引來精確定位到元素了

#驅動檔案路徑

driverfile_path = r'

d:\coship\test_framework\drivers\chromedriver.exe'#

啟動瀏覽器

driver = webdriver.chrome(executable_path=driverfile_path)

#driver.get(r'

')driver.find_element_by_id('kw

').send_keys('

selenium')

#driver.find_element_by_xpath("

//*[@id='form']/span[2]/input

").click()

#等待5秒

sleep(5)#退出

driver.quit()

如果乙個屬性不能唯一地區分乙個元素,需要兩個或者兩個以上的屬性才能定位到元素,那麼我們可以用邏輯運算子來連線兩個或多個屬性來定位元素,支援與(and),或(or),非(not)

**:

#

coding = utf-8

from time import

sleep

from selenium import

webdriver

#驅動檔案路徑

driverfile_path = r'

d:\coship\test_framework\drivers\chromedriver.exe'#

啟動瀏覽器

driver = webdriver.chrome(executable_path=driverfile_path)

#driver.get(r'

')#用xpath通過通過邏輯運算and來定位搜尋框

driver.find_element_by_xpath("

//*[@id='kw' and @name='wd']

").send_keys('

selenium')

#等待5秒

sleep(5)#退出

driver.quit()

Selenium使用Xpath定位

應該是不全面的,暫時整理這些,後續補充吧。1.絕對路徑 格式 driver.find element by xpath 絕對路徑 例子 driver.find element by xpath html body div x form input x 代表第x個 div標籤 索引從1開始 當頁面元素...

selenium元素定位Xpath

1.絕對路徑定位 用標籤的層級關係來定位元素,最外層語言為html,接著是body,一級一級的往下找,如果同一級,有多個相同的標籤,那麼按照上下順序確定第幾個,例 div 2 表示當前層級下第二個div 2.元素屬性定位 利用元素的屬性來定位元素 find element by xpath 元素名或...

selenium中xpath元素定位

常用的元素定位有id,class,name,xpath,css,jquery,其中xpath我們用的比較多,這裡總結一下xpath的元素定位技巧 1 通過絕對路徑來定位,一般很少用這種方法 body div div div div div form 這種從body標籤一層層往下找非常繁瑣且層數越多越...