繁体   English   中英

使用 python selenium 的页面加载时间在同一页面中的多个请求的 Performanance.timing 值不变

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM