本文將從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-hk/n/374427.html
微信掃一掃
支付寶掃一掃