我正在尝试使用 selenium 获取异步元素(MathJax 方程)加载时间。
我尝试编写一个python-selenium脚本来记录我的网站的加载时间,但是我的网站包含很多由Mathjax异步转换的方程,所以我无法正确记录。
我尝试先使用“performance.timing”记录加载时间,但它只能为我提供“加载时间”。
from selenium import webdriver
source = "url"
driver = webdriver.Chrome()
driver.get(source)
navigationStart = driver.execute_script("return window.performance.timing.navigationStart")
loadEventEnd = driver.execute_script("return window.performance.timing.loadEventEnd")
load_time = loadEventEnd - navigationStart
然后,我尝试找到“MathJax”的 ID 并等待一个 mathjax 元素(例如“MathJax-Element-1-Frame”)被加载
from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
source = "url"
driver = webdriver.Chrome()
begin = time.time()
driver.get(source)
locator = (By.ID, 'MathJax-Element-1-Frame')
WebDriverWait(driver, 20, 0.5).until(EC.presence_of_element_located(locator))
end = time.time()
finish_time = end - begin
但时间并不是绝对正确的。