2017-07-27 1 views
0

J'essaye d'automatiser le flux d'un site web qui a une alerte jquery sweet. Lorsque j'utilise HtmlUnitDriver pour tester un navigateur sans interface, l'alerte de type "sweet" est considérée comme non visible. Donc, quand j'ai essayé d'exécuter javascript pour changer l'affichage div à «bloquer» alors je reçois quelques exceptions.Comment utiliser HtmlUnitDriver avec une application utilisant jquery 3.1.1

HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.CHROME); 
driver.setJavascriptEnabled(true); 
driver.manage().window().maximize(); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
driver.get("https://www.someurl.com"); 
JavascriptExecutor js = (JavascriptExecutor) driver;  
js.executeScript("document.getElementById('dummy').style.display= 'block';"); 
WebElement dummy = driver.findElement(By.id("dummy")); 
System.out.println("dummy is displayed?:"+dummy.isDisplayed()); 

Exception avec HtmlUnit 2,18 avec Sélénium WebDriver 2.48.2:

org.openqa.selenium.WebDriverException: com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot find function createHTMLDocument in object [object DOMImplementation] 

Répondre

1

Ce numéro spécial a été fixé avec HtmlUnit 2.22, mais en général, vous devez passer à la dernière version (2.27 au moment).

+0

L'utilisation de HtmlUnit 2.22 a déclenché l'exception suivante: org.openqa.selenium.WebDriverException: java.lang.IllegalArgumentException: impossible de localiser la classe de champ déclarée org.apache.http.impl.client.HttpClientBuilder.dnsResolver sur la ligne driver.get ("https : //www.someurl.com ") –

+0

Veuillez utiliser' 2.27', WebDriver/HtmlUnit –