我们如何获得准确的时间使用Selenium WebDriver加载页面?我们如何准确地使用Selenium WebDriver加载页面?
我们使用了Thread.sleep
我们使用implicitlyWait
我们使用WebDriverWait
,但我们怎样才能得到确切的时间来加载使用Selenium webdriver的页面?
我们如何获得准确的时间使用Selenium WebDriver加载页面?我们如何准确地使用Selenium WebDriver加载页面?
我们使用了Thread.sleep
我们使用implicitlyWait
我们使用WebDriverWait
,但我们怎样才能得到确切的时间来加载使用Selenium webdriver的页面?
如果您试图找出使用Selenium WebDriver(a.k.a Selenium 2)完全加载页面需要多长时间。
通常情况下,WebDriver只有在页面完全加载后才能将控制权返回给您的代码。
所以下面硒的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);
唯一可能的问题是,您还包括发送/接收Selenium命令所需的时间。如果您在网络上使用集线器,则此增加的延迟可能会扭曲页面加载时间结果。 – Jochen
是的,你肯定是对的。这不是完全正确的答案。如果我们不使用java和selenium,添加可能会给我们正确的时间 - http://www.searchenginejournal.com/best-firefox-addons-to-analyze-the-page-load-time/12419/。请让我知道是否有任何方法使用Java代码实现页面加载时间。 –
Wat如果Ajax调用正在进行并且元素也可以看到? 示例网站 - http://www.mortgage-lender-reviews.com/reviews/amerisave-reviews.html –
driver.manage()。timeouts()。pageLoadTimeout(60,TimeUnit.SECONDS);
您可以使用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();
}
}
您想使用哪种编程语言? –
使用导航计时API –