[英]Performanance.timing values not changing for multiple requests in same page for page load time using python selenium
我正在尝试通过执行 javascript 命令performanance.timing
使用 python 和 selenium 获取页面加载时间
当导航到另一个页面时,我能够正确获取值,但如果我从同一页面执行一个交易/操作,这将带我到同一页面中的另一个选项卡,则 performanance.timing 不会改变。
注意:如果我重新加载页面,我可以更改值
有人可以告诉我如何获得我在 web 应用程序中执行的每个步骤的加载时间。
python selenium 脚本:
from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(40)
########### Home Page #################
driver.get("http://app.edulastic.com")
navigationStart = driver.execute_script("return window.performance.timing.navigationStart")
responseStart = driver.execute_script("return window.performance.timing.responseStart")
domComplete = driver.execute_script("return window.performance.timing.domComplete")
loadStart = driver.execute_script("return window.performance.timing.domInteractive")
loadend = driver.execute_script("return window.performance.timing.navigationStart")
backendPerformance = responseStart - navigationStart
frontendPerformance = domComplete - responseStart
loadingTime=loadStart-loadend
print ("Back End Homepage: %s" % backendPerformance)
print ("Front End Homepage: %s" % frontendPerformance)
print("loading time : %s" %loadingTime)
#################### Dashboard ##################
driver.find_element_by_id('login-email').send_keys("*****@gmail.com")
driver.find_element_by_id("login-password").send_keys("******")
driver.find_element_by_id("signIn").click()
driver.find_element_by_link_text("Create New Assignment")
navigationStart = driver.execute_script("return window.performance.timing.navigationStart")
responseStart = driver.execute_script("return window.performance.timing.responseStart")
domComplete = driver.execute_script("return window.performance.timing.domComplete")
domLoading = driver.execute_script("return window.performance.timing.domLoading")
loadStart = driver.execute_script("return window.performance.timing.domInteractive")
loadend = driver.execute_script("return window.performance.timing.navigationStart")
backendPerformance = responseStart - navigationStart
frontendPerformance = domComplete - responseStart
loadingTime=loadStart-loadend
#print("time converted ... %s" %time.strftime("%SSSS", time.gmtime(domLoading)))
print ("Back End Dashboard: %s" % backendPerformance)
print ("Front End Dashboard: %s" % frontendPerformance)
print("loading time : %s" %loadingTime)
#print("dom laoding time :%s" %domLoading)
########## create new assignment #########
driver.find_element_by_link_text("Create New Assignment").click()
print(driver.find_element_by_id("create-assessment-with-val").is_displayed())
loadStart = driver.execute_script("return window.performance.timing.domInteractive")
loadend = driver.execute_script("return window.performance.timing.navigationStart")
loadingTime = loadStart-loadend
print("loading time : %s" %loadingTime)
driver.quit()
创建新的分配部分导航到页面一侧的另一个选项卡,但时间值不会改变。
图片 -
我知道问题已经过去 5 年了,但我今天才发现问题出在哪里。
"return window.performance.timing"
function 从浏览器控制台获取信息。 如果您在同一个 window 中使用同一个 function 两次,它每次都会返回相同的数字,因为它是仍然打开的同一个窗口。
如果你想每次都获得新的性能时序,你只需预先用driver.refresh()
刷新 window
刷新后开始
navigationStart = driver.execute_script("return window.performance.timing.navigationStart")
responseStart = driver.execute_script("return window.performance.timing.responseStart")
然后像以前一样继续执行代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.