如何在java中使用selenium一次获取多个iframe内容

时间:2015-05-12 13:38:44

标签: java javascript selenium iframe phantomjs

在这里,我想获取网页的页面源。网页有iframe。我能够使用下面的代码获取页面内容而不是iframe内容

WebDriver driver = new PhantomJSDriver(caps);
driver.get(url);
Thread.sleep(10000);
System.out.println(driver.getPageSource());

但是,我可以使用以下代码获取iframe内容,但不能获取页面内容

WebDriver driver = new PhantomJSDriver(caps);
driver.get(url);
Thread.sleep(10000);
WebElement iframe=driver.findElement(By.xpath("//[@id='selection']/div/iframe"));
driver.switchTo().frame(iframe);
System.out.println(driver.getPageSource());

在这里,我想同时获取pagecontent和iframe内容。

另一种情况是,如果网页包含多个iframe,我需要获取所有iframe内容以及网页内容。

是否可以获取iframe和主页内容的内容..?

1 个答案:

答案 0 :(得分:0)

编写一个方法来获取内容,例如:

public void getIframeContent()
   try
   {
      WebElement iframe=driver.findElement(By.xpath("//[@id='selection']/div/iframe"));
      driver.switchTo().frame(iframe);
      System.out.println(driver.getPageSource());
   }
   finally
   {
      driver.SwitchTo().DefaultContent();
   }