Загрузите содержимое веб-страницы с помощью Selenium Webdriver и HtmlUnit.
Для следующих версий (JDK:8,JRE:8,HtmlUnit:2.17 и Selenium Webdriver:2.46) мой этот код работает отлично. Когда я говорю "хорошо", это означает, что я могу загрузить весь веб-контент (каждую строку).
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);
Ничего не работает Какие дополнительные вещи я могу добавить, пожалуйста, предложите.
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();
}
}
Спасибо всем.