9

Selenium WebDriver を使用してページを読み込む正確な時間を取得するにはどうすればよいですか?

Thread.sleep を使用します

暗黙的に使用しますWait

WebDriverWait を使用します

Selenium WebDriverを使用してページをロードする正確な時間を取得するにはどうすればよいですか?

4

5 に答える 5

18

Selenium WebDriver (別名 Selenium 2) を使用してページを完全にロードするのにかかる時間を調べようとしている場合。

通常、WebDriver は、ページが完全にロードされた後にのみ、コードに制御を返す必要があります。

したがって、次の Selenium Java コードは、ページ読み込みの時間を見つけるのに役立つ場合があります -

long start = System.currentTimeMillis();

driver.get("Some url");

long finish = System.currentTimeMillis();
long totalTime = finish - start; 
System.out.println("Total Time for page load - "+totalTime); 

これがうまくいかない場合は、何らかの要素がページに表示されるまで待つ必要があります -

 long start = System.currentTimeMillis();

driver.get("Some url");

WebElement ele = driver.findElement(By.id("ID of some element on the page which will load"));
long finish = System.currentTimeMillis();
long totalTime = finish - start; 
System.out.println("Total Time for page load - "+totalTime); 
于 2012-06-28T15:47:02.683 に答える
5

org.apache.commons.lang3.time パッケージの StopWatch オブジェクトを利用できます。以下は、Java を使用した Selenium WebDriver の完全なコードです。

import org.apache.commons.lang3.time.StopWatch;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class TimerInSeleniumWebDriver {
    public static void main(String[] args) {
        WebDriver driver;
        driver = new FirefoxDriver();       
        StopWatch pageLoad = new StopWatch();
        pageLoad.start();
        //Open your web app (In my case, I opened facebook)
        driver.get("https://www.facebook.com/");
        // Wait for the required any element (I am waiting for Login button in fb)
        WebDriverWait wait = new WebDriverWait(driver, 10);
        wait.until(ExpectedConditions.presenceOfElementLocated(By.id("u_0_l")));

        pageLoad.stop();
        //Get the time
        long pageLoadTime_ms = pageLoad.getTime();
        long pageLoadTime_Seconds = pageLoadTime_ms / 1000;
        System.out.println("Total Page Load Time: " + pageLoadTime_ms + " milliseconds");
        System.out.println("Total Page Load Time: " + pageLoadTime_Seconds + " seconds");
        driver.close();
    }
}
于 2015-10-01T09:46:05.303 に答える
0

最高のエクスペリエンスを得るには、TestListners を使用します。

@AfterMethod
    public void getResult(ITestResult result) throws Exception {
        String sMethodName = "";
        Long lExecutionTime;
        sMethodName = result.getMethod().getMethodName().toString();
        lExecutionTime = (result.getEndMillis() - result.getStartMillis()) / 1000;
        System.out.println(sMethodName + " execution Time is : " + lExecutionTime + "sec.");
    }
于 2020-09-02T16:30:03.573 に答える
-12

driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);

于 2014-04-22T12:32:24.157 に答える