Java 获取网页中最后一个加载元素

Java 获取网页中最后一个加载元素,java,selenium,Java,Selenium,我正在写一个selenium代码。在这里我想得到页面加载时间。代码如下 FirefoxDriver fd = new FirefoxDriver(); fd.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS); long startTime = System.currentTimeMillis(); System.out.println("Start time is " + startTime); fd.get("myurl");

我正在写一个selenium代码。在这里我想得到页面加载时间。代码如下

FirefoxDriver fd = new FirefoxDriver();
fd.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS);
long startTime = System.currentTimeMillis();
System.out.println("Start time is " + startTime);
fd.get("myurl");
long endTime = System.currentTimeMillis();
System.out.println("End time is " + endTime);
System.out.println("total time is " + (endTime - startTime) + " for i " + i);
timeTaken += (endTime - startTime);
fd.close();
System.out.println("Total tyime is " + timeTaken);
System.out.println("Avg time is " + (timeTaken / 10));
我的问题是,我想使用一个显式的TimeWait。为了使用它,我在教程中看到,我需要获取一些web元素并使用
waittil
条件,但在这里我无法理解哪个元素最后加载,请告诉我如何才能找到它,以便获得更准确的结果


谢谢

您应该使用显式等待,等待要与之交互的元素。 例如,如果您在一个网页上,需要单击Submit按钮,您将指定一个显式等待Submit按钮。例如:

WebDriver driver = new FirefoxDriver();
driver.get("http://somedomain/url_that_delays_loading");
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
  .until(ExpectedConditions.presenceOfElementLocated(By.id("submitbutton")));
或者,您可以等待该元素可单击:

public WebElement isElementLoaded(WebElement elementToBeLoaded) {
    WebDriverWait wait = new WebDriverWait(driver, 15);
    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id(item)));
    return element;
}
对于您刚才提到的,等待页面上最后一个元素被加载,这更像是一种隐式等待,因为您知道加载更多的元素需要更长的时间,并且您指定了更长的隐式加载时间