Python selenium 三種等待元素方式

2021-10-12 09:53:38 字數 1625 閱讀 2640

這種叫強制等待,不管你瀏覽器是否載入完了,程式都得等待,時間讀完繼續執行下面的**,,太死板,嚴重影響程式執行速度。

from selenium import webdriver

from time import sleep

driver = webdriver.firefox()

driver.get('')

sleep(3)

print driver.current_url

driver.quit()

**等待是設定了乙個最長等待時間,如果在規定時間內網頁載入完成,則執行下一步,否則一直等到時間截止,然後執行下一步。那就等於程式會一直等待整個頁面載入完成,也就是一般情況下你看到瀏覽器標籤欄那個小圈不再轉,才會執行下一步,但有時候頁面想要的元素早就在載入完成了

from selenium import webdriver

driver = webdriver.firefox()

driver.implicitly_wait(30) # 隱性等待,最長等30秒

driver.get('')

print driver.current_url

driver.quit()

配合該類的until()和until_not()方法,就能夠根據判斷條件而進行靈活地等待了。它主要的意思就是:程式每隔xx秒看一眼,如果條件成立了,則執行下一步,否則繼續等待,直到超過設定的最長時間,然後丟擲timeoutexception。

from selenium import webdriver

from selenium.webdriver.support.wait import webdriverwait

from selenium.webdriver.support import expected_conditions as ec

from selenium.webdriver.common.by import by

# 會開會話

driver = webdriver.chrome()

driver.get('')

driver.find_element_by_id('kw').send_keys('selenium')

driver.find_element_by_id('su').click()

# 顯性等待

webdriverwait(driver,20).until(ec.visibility_of_element_located((by.xpath,'//a[text()=" - web browser automation"]')))

driver.find_element_by_xpath('//a[text()=" - web browser automation"]').click()

print(driver.current_url)

driver.quit()

until()   判斷,直到返回值為true,執行下一步

nutil_not    判斷,直到返回值為false    執行下一步

Python selenium 三種等待方式解讀

原文 1.有frame 2.沒有加等待時間 為什麼要加等待時間了,是因為 執行速度與瀏覽器載入速度不一樣,導致 執行完了瀏覽器還沒有載入完,出現異常情況。下面講解selenium的三種等待方式 1.強制等待,是最簡單粗暴的方法slepp xx 不管你瀏覽器是否載入完了,程式都得等待xx秒,xx秒一到...

Python selenium 三種等待方式

1.強制等待 time.sleep 2.顯式等待 from selenium.webdriver.support import expected conditions as ec from selenium.webdriver.support.ui import webdriverwait from...

Python selenium 三種等待方式詳解

1.強制等待 第一種也是最簡單粗暴的一種辦法就是強制等待sleep xx 強制讓閃電俠等xx時間,不管凹凸曼能不能跟上速度,還是已經提前到了,都必須等xx時間。看 coding utf 8 from selenium import webdriver from time import sleep d...