Python Selenium 元素定位與查詢

2021-08-29 10:12:27 字數 1332 閱讀 2067

find_element_by_id()  # 通過 id 查詢元素

find_element_by_name()     # 通過 name 查詢元素

find_element_by_class_name()       # 通過class name 查詢元素

find_element_by_xpath()   #  通過xpath查詢元素

find_element_by_link_text() # 通過文字內容查詢元素

有的時候會出現查詢不到元素的情況,也許是 frame 的問題,我們可以通過切換 frame 來查詢我們需要獲取的元素

關於 frame 介紹

frame是 html 框架結構常用的一種布局格式,共有三種形式: frameset  frame  iframe

frameset :將 html 頁面分割,可以嵌入多個 html 原始碼檔案,實現單個頁面顯示不同 html 頁面效果,不能嵌入在 body 標籤中

frame: 在 frameset 下面設定 frame,實現某個框架頁面,必須巢狀在 franmeset 中,無法單獨存在.

iframe:在某個頁面嵌入乙個 html 視窗資訊,可脫離 frameset 應用,框架屬性有自己定義.

frameset在分割頁面後,可以由 frame 和 iframe

嵌入頁面資訊,frame 僅能在 frameset 中應用,iframe 則無此限制.

fraameset 與 html 其他標籤相同,不影響正常的元素定位,但 frame 及 iframe 則不同,在定位元素過程中,需先定位 frame 及 iframe

from selenium import webdriver

driver = webdriver.firefox()

# 通過 id 定位

driver.switch_to.frame('id')

# 通過 name 定位

driver.switch_to.frame('name')

# 通過索引定位

driver.switch_to.frame(0)

如果 frame 沒有 id 或 name ,則可以索引值,也可以利用先查詢 web element 物件在切換 frame 的方法進行,查詢 web element 可以利用 find element 方式

當某個 frame 中巢狀了其他的 frame 時,切換 frame 則需以巢狀結構逐層切換

切換到某個具體的 frame 中一周,selenium 不能定位主文件中的元素,如果想定位主文件中的元素,需要切回到主文件中,driver. switch_to.defaullt_content()

Python Selenium環境搭建

安裝python 設定 python 的環境變數 安裝目錄 安裝目錄 scripts 使用 pip安裝 selenium pip install selenium 安裝完python pip工具,在安裝目錄的 scripts 目錄下。在 dos下直接執行 pip install selenium 即...

Python Selenium 學習筆記

1 判斷元素是否存在 try driver.find element.xx a true except a false if a true print 元素存在 elif a false print 元素不存在 2 判斷元素是否顯示 driver.find element by id outputb...

Python Selenium錯誤小結

因為要使用web應用,所以開始用起了,selenium包,安裝倒是挺容易的,但就是出了很多bug。filenotfounderror winerror 2 系統找不到指定的檔案。通過錯誤反饋發現是要把該軟體加到路徑裡面,但是,設定了系統環境變數後發現還是不行,最後,使用了乙個非常原始的方法 brow...