如何在java中使用phantomjsdriver完全加载网页

时间:2015-04-09 12:06:07

标签: java selenium-webdriver phantomjs

在这里,我使用phantomjsdriver获取网页内容。我能够获得静态网页的完整内容。 但是,我无法获得具有ajax调用(动态网页)的网页的完整内容。当我尝试下面的代码 我能够获得动态网页的内容。但我无法预测页面的加载时间。所以,我在寻找 告诉页面已完全加载的函数。

WebDriver driver = new PhantomJSDriver(caps);
 driver.get("http://www.blackwoods.com.au/search/flat-cut-off-wheels-metal-flexovit/302022874"); 
thread.sleep(10000);
System.out.println(driver.getPageSource());
driver.quit();

在这里,我想使用thread.sleep(10000);之外的函数。

即使我尝试使用以下代码。但没有得到完整的内容

 WebDriver driver = new PhantomJSDriver(caps);
 driver.get("http://www.blackwoods.com.au/search/flat-cut-off-wheels-metal-  flexovit/302022874"); 
 WebDriverWait wait = new WebDriverWait(driver,15);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ProductsPane")));
System.out.println(driver.getPageSource());
  driver.quit();

1 个答案:

答案 0 :(得分:0)

请查看Web Testing Box,特别注意WaitTool,以便您轻松等待元素显示。

适合您的工具是waitForJavaScriptCondition(),它允许您运行一段JavaScript(在被测页面的上下文中)。

然后,您必须查看使用的框架。例如,如果页面使用jQuery,则可以使用$.active != 0作为条件(请参阅“How do I know if jQuery has an Ajax request pending?”)。