2015-06-10 41 views
1

对于以下版本(JDK:8,JRE:8,HtmlUnit:2.17和Selenium Webdriver:2.46),我的代码工作得很好。当我说好时,意味着我可以下载完整的网页内容(每一行)。使用Selenium Webdriver和HtmlUnit下载网页内容

package mypackage; 
import org.openqa.selenium.By;  
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.htmlunit.HtmlUnitDriver;  
import org.openqa.selenium.support.ui.ExpectedConditions; 
import org.openqa.selenium.support.ui.WebDriverWait; 

import com.gargoylesoftware.htmlunit.BrowserVersion; 
public class HtmlUnitTest {    
public static void main(String[] args) { 
WebDriver driver = new FirefoxDriver(); // Working fine 
String baseUrl = "h t t p s :// fourseasons . wd3 . myworkdayjobs . com/search/jobs"; 
driver.get(baseUrl); 
WebDriverWait myWaitVar = new WebDriverWait(driver, 20); 
try{ 
    myWaitVar.until(ExpectedConditions.visibilityOfElementLocated(By.id("wd-FacetedSearchResult-ResultsPnl-facetSearchResult"))); 
}catch(Exception ex){ 
    ex.printStackTrace(); 
} 
String content=driver.getPageSource(); 
System.out.println(content); 
driver.close();   
}  

}

但是,当我驾驶者改变HtmlUnitDriver,它不会下载的全部内容。

WebDriver driver = new HtmlUnitDriver(); 

我的尝试则:

1. WebDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_38); 
2. WebDriver driver = new HtmlUnitDriver(BrowserVersion.CHROME); 
3. WebDriver driver = new HtmlUnitDriver(BrowserVersion.INTERNET_EXPLORER_11); 

没有什么工作。 我可以添加什么额外的东西,请建议。

+0

没有@LaurentiuL。 ,它不重复。我没有获得全部内容,这是我的问题。上面的链接(由你提到)有一个xpath的问题。我想我必须设置更多的参数或做额外的事情来获取内容。我是新的硒web驱动程序,所以请建议做什么? – Shashank

回答

1

我得到了答案的家伙。我启用了JavaScript,它的工作。所以新代码是这样的:

public class HtmlUnitTest {    
    public static void main(String[] args) { 
     HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_38); 
     driver.setJavascriptEnabled(true); 
     String baseUrl = "h t t p s :// fourseasons . wd3 . myworkdayjobs . com/search/jobs"; 
     driver.get(baseUrl); 
     WebDriverWait myWaitVar = new WebDriverWait(driver, 20); 
     try{ 
      myWaitVar.until(ExpectedConditions.visibilityOfElementLocated(By.id("wd-FacetedSearchResult-ResultsPnl-facetSearchResult"))); 
     }catch(Exception ex){ 
      ex.printStackTrace(); 
     } 
     String content=driver.getPageSource(); 
     System.out.println(content); 
     driver.close();   
    }  
} 

谢谢大家。