欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

selenium獲取元素定位的方法總結(動態(tài)獲取元素)

 更新時間:2024年02月01日 11:03:55   作者:墨痕訴清風  
要想操作一個元素,首先應該識別這個元素,人有各種的特征(屬性),可以通過其特征找到人,同理,界面的某個元素會有各種的特征(屬性),可以通過這個屬性找到這對象,本文給大家介紹了python?selenium獲取元素定位的8種方法,需要的朋友可以參考下

元素

要想操作一個元素,首先應該識別這個元素。人有各種的特征(屬性),可以通過其特征找到人,如通過身份證號、姓名、家庭住址。同理,界面的某個元素會有各種的特征(屬性),可以通過這個屬性找到這對象。

例如:

driver.find_element(By.CSS_SELECTOR, 'img[title="點擊圖片重新獲取驗證碼"]')

該代碼尋找屬性標識著為 “點擊圖片重新獲取驗證碼圖” 的圖片驗證碼。

元素:由標簽頭 + 標簽尾 + 標簽頭和標簽尾包括的文本內容

元素定位最終就是通過元素的信息或者元素的層級結構來進行元素定位

查看元素信息

選中元素,右鍵點擊“檢查”,即可查看到該控件的所有屬性 

元素定位

selenium提供了常用的8種方法:

定位一個元素

定位多個元素

  • 通過元素id定位
    • find_element_by_id

    • find_elements_by_id

  • 通過元素name定位

    • find_element_by_name

    • find_elements_by_name

  • 通過xpath表達式定位

    • find_element_by_xpath

    • find_elements_by_xpath

  • 通過完整超鏈接定位

    • find_element_by_link_text

    • find_elements_by_link_text

  • 通過部分鏈接定位

    • find_element_by_partial_link_text

    • find_elements_by_partial_link_text

  • 通過標簽定位

    • find_element_by_tag_name

    • find_elements_by_tag_name

  • 通過類名進行定位

    • find_element_by_class_name

    • find_elements_by_class_name

  • 通過css選擇器進行定位

    • find_element_by_css_selector

    • find_elements_by_css_selector

通過元素id定位

find_element_by_id("kw")?

通過元素name定位

find_element_by_id("kw")?

通過xpath表達式定位

Xpath是一種在XMLHTML文檔中查找信息的語言,通過Xpath路徑來定位元素的時候也是分絕對路徑和相對路徑。

絕對路徑

鼠標單機右鍵-Copy-Copy full XPath即可獲取其XPath絕對路徑

/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[1]/input

selenium通過xpath定位語句: 

find_element_by_xpath('/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[1]/input')

相對路徑

鼠標單機右鍵-Copy-Copy XPath即可獲取其XPath相對路徑

//*[@id="kw"]

selenium通過xpath定位語句: 

find_element_by_xpath('//*[@id="kw"]')

相對路徑的xpath定位表達式更加簡潔,但是偶然會出現(xiàn)錯誤的尋址,但如果可以推薦使用相對路徑的xpath表達式。

通過完整超鏈接定位

find_element_by_link_text('文庫')

通過部分鏈接定位

find_element_by_partial_link_text('庫')

通過標簽定位

HTML是通過tag來定義一類功能的,比如input是輸入,table是表格,tbody是表格主體等。每個元素其實就是一個tag,由于一個tag用來定義一類功能,一個網頁往往有很多同類tag,所以很難通過tag去區(qū)分不同的元素。

find_element_by_tag_name('input')?

通過類名進行定位

find_element_by_class_name('s_ipt')

如果class的值中有空格,則需要借助CSS選擇器。

通過css選擇器進行定位

Selenium官網當中是更加推薦Css Selector()方法來進行頁面元素的定位的,Css定位可以通過id選擇器、class選擇器、標簽選擇器和屬性選擇器。

id選擇器

通過 # 來定義,通過元素的id屬性來定位

find_element_by_css_selector("#kw")?

class選擇器

通過 .來定義,通過元素的class屬性來定位

find_element_by_css_selector(".s_ipt")?

標簽選擇器

通過標簽的名字來定位元素

find_element_by_css_selector("input")?

屬性選擇器

find_element_by_css_selector('[id="kw"]')?
find_element_by_css_selector('input[id="kw"]')?

定位帶空格的復合class屬性

以百度上方欄目元素為例,其class屬性帶有空格。

class="s-top-left-new?s-isindex-wrap"

直接通過class屬性定位是會報錯的,需要通過css selector按class屬性定位。

find_element_by_css_selector('[class="s-top-left-new?s-isindex-wrap"]')

selenium 4.0以后版本用法

from?selenium.webdriver.common.by?import?By
element?=?web.find_element(By.ID,'kw')
element?=?web.find_element(By.NAME,'wd')
element?=?web.find_element(By.CLASS_NAME,'s_ipt')
element?=?web.find_element(By.TAG_NAME,'input')
element?=?web.find_element(By.LINK_TEXT,'新聞')
element?=?web.find_element(By.PARTIAL_LINK_TEXT,'聞')
element?=?web.find_element(By.XPATH,'//*[@id="kw"]')
element?=?web.find_element(By.CSS_SELECTOR,'#kw')
element?=?web.find_element(By.CSS_SELECTOR,'[id="kw"]')
element?=?web.find_element(By.CSS_SELECTOR,'input[id="kw"]')

以上就是selenium獲取元素定位的8種方法總結(動態(tài)獲取元素)的詳細內容,更多關于selenium元素定位的資料請關注腳本之家其它相關文章!

相關文章

  • django獲取from表單multiple-select的value和id的方法

    django獲取from表單multiple-select的value和id的方法

    今天小編就為大家分享一篇django獲取from表單multiple-select的value和id的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 詳解OpenCV自適應直方圖均衡化的應用

    詳解OpenCV自適應直方圖均衡化的應用

    在本文中,將介紹如何應用對比度受限的自適應直方圖均衡化 ( Contrast Limited Adaptive Histogram Equalization, CLAHE ) 來均衡圖像,需要的可以參考一下
    2022-02-02
  • Python實現(xiàn)基于權重的隨機數2種方法

    Python實現(xiàn)基于權重的隨機數2種方法

    這篇文章主要介紹了Python實現(xiàn)基于權重的隨機數2種方法,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • 對變量賦值的理解--Pyton中讓兩個值互換的實現(xiàn)方法

    對變量賦值的理解--Pyton中讓兩個值互換的實現(xiàn)方法

    下面小編就為大家分享一篇Pyton中讓兩個值互換的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • PyTorch CUDA環(huán)境配置及安裝的步驟(圖文教程)

    PyTorch CUDA環(huán)境配置及安裝的步驟(圖文教程)

    這篇文章主要介紹了PyTorch CUDA環(huán)境配置及安裝的步驟(圖文教程),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Python入門篇之函數

    Python入門篇之函數

    本篇文章將介紹如何將語句組織成函數,以及參數概念以及在程序中的用途,需要的朋友可以參考下
    2014-10-10
  • Python字符串格式化format()方法運用實例

    Python字符串格式化format()方法運用實例

    這篇文章主要給大家介紹了關于Python字符串格式化format()方法運用實例的相關資料,字符串格式化是Python編程中十分常用的部分,它可以幫助我們將更具可讀性的數據輸出到控制臺或寫入文件,需要的朋友可以參考下
    2023-08-08
  • Python 數據科學 Matplotlib圖庫詳解

    Python 數據科學 Matplotlib圖庫詳解

    Matplotlib 是 Python 的二維繪圖庫,用于生成符合出版質量或跨平臺交互環(huán)境的各類圖形。今天通過本文給大家分享Python 數據科學 Matplotlib的相關知識,感興趣的朋友一起看看吧
    2021-07-07
  • Python?的賦值,淺拷貝和深拷貝詳解

    Python?的賦值,淺拷貝和深拷貝詳解

    這篇文章主要為大家介紹了Python?的賦值,淺拷貝和深拷貝,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2021-12-12
  • Python 實現(xiàn)使用dict 創(chuàng)建二維數據、DataFrame

    Python 實現(xiàn)使用dict 創(chuàng)建二維數據、DataFrame

    下面小編就為大家分享一篇Python 實現(xiàn)使用dict 創(chuàng)建二維數據、DataFrame,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論