Selenium WebDriver を使用してページを読み込む正確な時間を取得するにはどうすればよいですか?
Thread.sleep を使用します
暗黙的に使用しますWait
WebDriverWait を使用します
Selenium WebDriverを使用してページをロードする正確な時間を取得するにはどうすればよいですか?
Selenium WebDriver を使用してページを読み込む正確な時間を取得するにはどうすればよいですか?
Thread.sleep を使用します
暗黙的に使用しますWait
WebDriverWait を使用します
Selenium WebDriverを使用してページをロードする正確な時間を取得するにはどうすればよいですか?
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);
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();
}
}
最高のエクスペリエンスを得るには、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.");
}
driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);