Я пытаюсь использовать селен для получения асинхронных элементов (уравнение 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» и ждать, пока не загрузится один элемент 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
Но время не совсем правильное.