簡體   English   中英

Python Selenium查找元素

[英]Python Selenium finding element

遇到一個奇怪的問題,我需要您的幫助。 我正在使用Selenium庫,此指令存在問題:

driver.find_element_by_name('longitude')

有時它可以工作,我可以找到帶有經度名稱的元素,有時即使網頁中沒有任何變化也找不到。

找到元素之前使用wait方法:-例如。

from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.support.ui import WebDriverWait

WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID,"element")))

使用time.sleep(seconds)加載頁面,然后在您找到Web元素之后,有時如果頁面未加載,它可能會像Web元素不可用一樣拋出,因此請使用time.sleep()

您可以隱式等待:

就像是 :

from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
driver.find_element_by_name('longitude')

要么

顯式等待

WebDriverWait(driver, 10).until( EC.visibility_of_element_located((By.NAME,"longitude"))) 

為此,您必須導入以下內容:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 

請注意,您不應將隱式等待顯式wait混合使用,否則可能導致無法預測的 等待超時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM