2010-12-12 3 views
1

J'ai besoin d'une aide très simple pour ouvrir google.com dans un navigateur à partir d'une application de bureau Java.HTMLUnit Open Window affichant google.com

Vous cherchez à utiliser HTMLUnit et quelque chose comme ceci:

import java.io.IOException; 

importation java.net.URL; import java.util.List; import com.gargoylesoftware.htmlunit.WebWindow; import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.Page; import com.gargoylesoftware.htmlunit.RefreshHandler; import com.gargoylesoftware.htmlunit.WebClient; importez com.gargoylesoftware.htmlunit.html.HtmlAnchor; import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlPage; importez com.gargoylesoftware.htmlunit.html.HtmlTable; importez com.gargoylesoftware.htmlunit.html.HtmlTableRow;

HTMLUnit public class {

public static void main(String[] args) throws Exception { 

// Créer et initialiser l'objet WebClient WebClient WEBCLIENT = new WebClient (BrowserVersion.INTERNET_EXPLORER_8);

 webClient.setThrowExceptionOnScriptError(false); 
webClient.setRefreshHandler(new RefreshHandler() { 

handleRefresh public void (Page page, URL URL, int arg) throws IOException { System.out.println ("handleRefresh"); }

}); 

     Page NewGooglePage = webClient.openWindow(new URL("http://www.google.com"), "GoogleWindow").getEnclosedPage(); 

Lors de l'exécution de ce fichier dans NetBeans dois-je obtenir une fenêtre pop?

Répondre

2

Non,

HtmlUnit est un "navigateur sans tête". Cela signifie que tout ce que vous faites avec HtmlUnit n'est pas visible. Je vous suggère plutôt d'essayer WebDriver/Selenium 2 (http://seleniumhq.org/docs/09_webdriver.html). Avec WebDriver vous pouvez contrôler le navigateur à distance comme Firefox ou IE.

Quelque chose comme:

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.RenderedWebElement; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class GoogleSuggest { 
    public static void main(String[] args) throws Exception { 
     // The Firefox driver supports javascript 
     WebDriver driver = new FirefoxDriver(); 

     // Go to the Google Suggest home page 
     driver.get("http://www.google.com/webhp?complete=1&hl=en"); 

     // Enter the query string "Cheese" 
     WebElement query = driver.findElement(By.name("q")); 
     query.sendKeys("Cheese"); 

    } 
} 
+0

Wow je vous remercie pour cette réponse c'est super et exactement ce dont je pense avoir besoin. Cela signifie-t-il que le client aura besoin que FireFox soit installé pour exécuter l'application? En outre, je cherche actuellement à accéder à l'outil de mot-clé google adwords dans mon application et comme il a le captcha dont j'avais besoin pour afficher un navigateur afin que l'utilisateur puisse entrer dans le captcha. Comme vous l'avez dit dans votre code "Le pilote Firefox supporte le javascript", est-ce que cela voudrait dire que je peux utiliser Javascript pour faire apparaître une fenêtre affichant simplement le captcha à entrer? La seule chose que je peux voir être un problème ici serait des cookies de session mais peut-être pas. –

+0

Oui, vous devez avoir le navigateur actuel que vous "contrôle à distance" installé sur l'ordinateur exécutant webdriver. Le reste de votre commentaire ressemble à un hack (et je ne suis pas sûr qu'il est compatible avec les conditions d'utilisation de Google), alors bonne chance;) –

+0

Oh je viens de tester votre code ci-dessus et il ne semble pas apparaître ouvrir?? –

0

Fait intéressant ce code a travaillé, j'ai changé pour le navigateur IE, semble quelque chose avec FireFox.

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.ie.InternetExplorerDriver; 



public class KeywordTool { 
    private static final By By = null; 

    public static void main(String[] args) throws Exception { 
     // The Firefox driver supports javascript 
     WebDriver driver = new InternetExplorerDriver(); 

     // Go to the Google Suggest home page 
     driver.get("http://www.google.com"); 

     // Enter the query string "Cheese" 
     WebElement query = driver.findElement(By.name("q")); 
     query.sendKeys("Cheese"); 

    } 
} 
1

... ceci peut être lié aux paramètres envoyés dans la requête. J'ai comparé ceux envoyés par HTMLUnit et les navigateurs originaux. Il y a des différences. Par ailleurs, vous pouvez ajouter les paramètres de requête manquants dans HmlUnit.