本文將從Selenium刷新元素的幾個方面,包括自動刷新,手動刷新等進行詳細的闡述和代碼實現。
一、自動刷新
自動刷新是指在一些對時間敏感的場景下,需要在頁面中不斷刷新特定的元素。Selenium通過兩種方式實現自動刷新元素,一種是利用webdriver自帶的定時刷新功能,另一種是自定義定時刷新。
1、webdriver自帶的定時刷新功能
from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.example.com") element = driver.find_element_by_id("auto-refresh") driver.implicitly_wait(10) while True: driver.refresh() if not element.is_displayed(): break;
以上代碼實現了每隔10秒自動刷新頁面,直到元素”auto-refresh”不再顯示,即表示元素已經刷新完畢。
2、自定義定時刷新
import time from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.example.com") element = driver.find_element_by_id("auto-refresh") while True: driver.refresh() time.sleep(10) if not element.is_displayed(): break;
以上代碼同樣實現了每隔10秒自動刷新頁面,直到元素”auto-refresh”不再顯示。值得注意的是,這裡使用了Python自帶的time.sleep()函數,需要導入time模塊。
二、手動刷新
手動刷新是指需要在代碼中手動觸發頁面元素的刷新,Selenium提供了兩種方式實現手動刷新,一種是通過webdriver提供的refresh()方法進行刷新,另一種是通過模擬F5鍵刷新。
1、使用webdriver提供的refresh()方法
from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.example.com") element = driver.find_element_by_id("manual-refresh") driver.implicitly_wait(10) driver.refresh() element = driver.find_element_by_id("manual-refresh")
以上代碼首先加載頁面,並查找到id為”manual-refresh”的元素,等待10秒。然後手動刷新頁面,並重新查找到id為”manual-refresh”的元素,以此驗證刷新是否成功。
2、模擬F5鍵刷新
from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.get("https://www.example.com") element = driver.find_element_by_id("manual-refresh") driver.implicitly_wait(10) action_chains = ActionChains(driver) action_chains.key_down(Keys.CONTROL).send_keys(Keys.F5).key_up(Keys.CONTROL).perform() element = driver.find_element_by_id("manual-refresh")
以上代碼同樣首先加載頁面,並查找到id為”manual-refresh”的元素,等待10秒。然後模擬按下CTRL+F5鍵刷新頁面,並重新查找到id為”manual-refresh”的元素,以此驗證刷新是否成功。
三、小結
本文對Selenium刷新元素進行了詳細的闡述,並提供了各種刷新方式的代碼實現。自動刷新可以在一些時間敏感的場景下實現自動刷新,而手動刷新則可以在需要手動觸發的場景下使用。
原創文章,作者:LIZWO,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/374427.html