iT邦幫忙

0

python selenium WebDriverWait 的使用時機 & 如何判斷網頁是否讀取完畢

  • 分享至 

  • xImage

想請問 webdriver 的使用時機?

因為如果呼叫 driver.get 後,會等到網頁讀取完才會繼續執行下一行
那 WebDriverWait 是否等同使用 while 迴圈加上最大等待時間去 find_element

# 尋找元素
def check_element(element_name):
    try:
        return browser.find_element_by_class_name(element_name)
    except: # except NoSuchElementException:
        print("找不到 element:"+element_name)
        return False

wait_load_time = 180 # 網頁讀取等待最大秒數(秒)
starttime = datetime.datetime.now()
while (datetime.datetime.now() - starttime < wait_load_time):
    if check_element("xxxx"):
        # do something
        break

雖然有看過網路上有人把 set_page_load_timeout 設定的極短,來跳過網頁讀取時間搭配 WebDriverWait 使用達到效果,但因為不知道後續如何判斷網頁是讀取錯誤(轉調 error page)還是塞車導致需要繼續等待,所以也沒嘗試過這種方法

SK. iT邦新手 5 級 ‧ 2024-05-24 14:33:32 檢舉
如果是問動作的話
WebdriverWait功能確實如你上述的while相同
但好像沒辦法確認加載的元素 只能看是否加載完成
實際上也比較簡短 我都用WebdriverWait判斷而已
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答