2012-01-12 4 views
4

Je suis actuellement en train d'essayer d'exécuter un pop-up JavaScript en utilisant HtmlUnitDriver de webdriver et son produit un résultat étrange.Webdriver et Popups dans HtmlUnitDriver

La même ligne de code fonctionne très bien en utilisant le FirefoxDriver mais une fois qu'il est passé à HtmlUnitDriver, il cesse de fonctionner. Le code simple que je utilise est ici:

Alert alert = driver.switchTo().alert(); 
alert.accept(); 

Est-HtmlUnitDriver capable de gérer Java pop-ups, ou est-ce un point de HtmlUnitDriver limite.

il s'agit d'une fenêtre de confirmation Javascript. Nous avons essayé d'utiliser les propriétés firefox avec HTMLUnitDriver en faisant:

driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3); 

Cela a échoué.

Une question annexe, JavaScript devrait-il être activé pour HTMLUnitDriver pour que nous puissions interagir avec la boîte de dialogue Confirmer? Si OUI, quelqu'un sait-il comment nous pouvons activer cela?

driver = new HtmlUnitDriver(capabilities); 

ne semble pas fonctionner et n'est pas reconnu.

Toute aide serait grandement appréciée. Vive

Répondre

4

Cela semble être un problème de longue course https://code.google.com/p/selenium/issues/detail?id=1105

J'ai utilisé une solution JavaScript pour la confirmation pop-up. Voici un exemple en Python:

self.driver = WebDriver(
    command_executor='http://localhost:4444/wd/hub', 
    desired_capabilities=DesiredCapabilities.HTMLUNIT) 

self.driver.execute_script("window.confirm = function(msg) {return true;};") 
self.find_element_by_id('mybutton').click() 

Remplacer la fonction confirm() avant de l'utiliser et de le faire revenir vrai pour accepter. Ensuite, vous déclenchez l'événement click. Changez-le en false pour Annuler.

Assez soigné. J'ai trouvé ça ailleurs sur StackOverflow mais je ne me souviens plus où.

+0

Comment pourrais-je faire la même chose dans java –

Questions connexes