selenium 我们如何才能得到准确的时间来加载一个移动的应用程序页面使用Appium和Java?

31moq8wy  于 2022-11-24  发布在  Java
关注(0)|答案(3)|浏览(149)

嗨,团队,我需要计算移动的应用程序页面加载时间,当我们从一个屏幕导航到另一个屏幕的移动应用程序。

我已尝试以下方法:

点击元素前,获取当前时间(单位:毫秒),点击元素后,等待预期元素可见,然后再次获取当前时间(单位:毫秒)并减去时间。
请帮助我更好的方法来计算准确的页面加载时间。

  • 谢谢-谢谢
zysjyyx4

zysjyyx41#

driver.get('url')
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")
 
backendPerformance_calc = responseStart - navigationStart
frontendPerformance_calc = domComplete - responseStart
 
print("Back End: %s" % backendPerformance_calc)
print("Front End: %s" % frontendPerformance_calc)

你可以用它来加载页面。不确定Java的方式。

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeAsyncScript("return window.performance.timing.navigationStart");
sxpgvts3

sxpgvts32#

你可以测量持续时间。当你开始加载应用程序/页面时启动秒表。当最后一个元素被加载时停止它。

nkcskrwz

nkcskrwz3#

你可以使用stopwatch类找到加载主页的确切时间。使用下面的代码:
StopWatch loadTime =新建秒表();

driver.get("url");
    loadTime.start();
    
    boolean appLoaded = new WebDriverWait(driver, 30).until(
            ExpectedConditions.elementToBeClickable(MobileBy.xpath("any xpath of expected page"))).isDisplayed();
    
    loadTime.stop();
    
    System.out.println("is App loaded : " +appLoaded);
    long pageLoadTime_ms = loadTime.getTime();
    System.out.println(" Load Time: " + pageLoadTime_ms + " milliseconds");

相关问题