![](/img/trans.png)
[英]Wait until page is loaded with Selenium WebDriver for Python
[英]Wait for page redirect Selenium WebDriver (Python)
我有一個頁面用ajax加載動態內容,然后在一定時間后重定向(不固定)。 如何強制Selenium Webdriver等待頁面重定向,然后立即轉到另一個鏈接?
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome();
driver.get("http://www.website.com/wait.php")
“等待”顯示唯一(用於新頁面)元素是一種很好的做法。
您可以使用模塊expected_conditions 。
例如,您可以在登錄時等待用戶徽標:
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
driver.get('http://yourapp.url')
timeout = 5
try:
logo_present = EC.presence_of_element_located((By.ID, 'logo_id'))
WebDriverWait(driver, timeout).until(logo_present)
except TimeoutException:
print "Timed out waiting for page to load"
有幾個ExpectedConditions可以與ExplicitWait一起使用來處理頁面重定向:
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
等待title_is(title_name)
新頁面標題:
wait.until(EC.title_is('New page Title'))
等待使用url_changes(exact_url)
將當前URL更改為任何其他URL:
wait.until(EC.url_changes('https://current_page.com'))
等待使用url_to_be(exact_url)
導航到確切的URL:
wait.until(EC.url_to_be('https://new_page.com'))
也
url_contains(partial_url)
可用於等待包含指定子字符串或url_matches(pattern)
的URL - 等待通過傳遞的正則表達式模式或title_contains(substring)
匹配的URL - 等待包含指定子字符串的新標題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.