解決網頁元素無法定位的幾種方法

2022-06-14 05:54:10 字數 477 閱讀 6757

備註:

若出現手動和自動不一樣,請用自動開啟的頁面檢視元素

一、元素未載入出來,此時可以使用顯示等待或者隱式等待

顯示等待如下:

from selenium.webdriver.support.ui import webdriverwait

t = webdriverwait(driver, 10).until(lambda x: x.find_element_by_id('u1'))

設定超時時間為10秒,即最長等待時間為10秒,若10秒內依舊沒載入出來,則返回timeout超時的報錯,10秒內檢測到了u1這個元素,則立即執行下面的動作

隱式等待如下:

driver.implicitly_wait(10)

會等待頁面上所有的元素都載入出來之後才會執行,若有其他元素未記載出來,則會在超時時間之前一直等待

隱式等待會比顯示等待耗費時間,且隱式等待只作用於**執行到該行時的視窗,對於新視窗無效

Selenium常見的無法定位到元素的原因

1.元素沒有載入完成,就進行定位元素 設定等待 匯入時間模組使用 time.sleep 5 2.視窗切換 視窗控制代碼還處在上乙個視窗,導致無法定位新視窗的元素。3.frame原因定位不到元素 這個是最常見的原因,首先要理解下frame的實質,frame中實際上是嵌入了另乙個頁面,而webdrive...

獲取元素的幾種方法

document.getelementbyid id document.getelementbytagname 標籤名 document.getelementbyclassname classname 獲取父節點,元素物件.parentnode 獲取子元素,元素物件.children 獲取下乙個兄弟...

JS獲取網頁中HTML元素的幾種方法分析

getelementbyid getelementsbyname getelementsbytagname 大概介紹 getelementbyid getelementsbyname getelementsbytagname 後兩個是得到集合,byid只是得到單個物件 getelementbyid ...