Comment gérer la fenêtre contextuelle en utilisant selenium webdriver avec Java


Aidez-moi, je suis nouveau dans Selenium. J'essaie d'automatiser le site Web de commerce électronique et j'ai du mal à gérer la fenêtre contextuelle. Voici le scénario:

  1. Aller à http://www.lampsplus.com
  2. Cliquez sur le lien de vente dans la section d'en-tête.
  3. Cliquez sur le 1er article/produit affiché sur la page. (Cela montrera la page du produit).
  4. Sur la page du produit, cliquez sur le bouton rouge Ajouter au panier. (Cela ajoutera un produit au panier et affichera une fenêtre contextuelle).
  5. Sur le popup, cliquez sur le gris foncé Continuer les achats bouton. (Pour fermer la fenêtre contextuelle.)

Je suis resté bloqué à l'étape 5 (Message d'erreur: Impossible de localiser l'élément " Continuer les achats") Voici mon code avant l'étape 5:

 WebDriver d1 = new FirefoxDriver();
d1.manage().window().maximize();
d1.get("http://www.lampsplus.com");
d1.findElement(By.name("hdr_sale")).click();
d1.findElement(By.xpath(".//*[@id='sortResultContainer60238']/a[2]/span")).click();
d1.findElement(By.id("pdAddToCart")).click(); //This is step 4
//Here is suppose to be some code which handles the popup - my problem
d1.findElement(By.id("aContinueShopping")).click();  //This is step 5

Je suis au courant .La méthode getWindowHandle ();. J'en ai essayé plusieurs variantes et aucune n'a fonctionné. Quelqu'un peut-il me donner une idée de la façon de le gérer. Merci beaucoup! J'utilise Java.

Remarque: Je ne travaille pas pour LampsPlus et n'essaie pas de promouvoir leurs produits, ceci le site Web a été choisi uniquement à des fins de formation.

Author: Artem, 2013-10-31

1 answers

, L'élément aContinueShopping est contenu dans une iframe.

Vous devrez passer à l'iframe en utilisant:

WebElement frameID = d1.findElement(By.Css("#add-to-cart>iframe"));
d1.SwitchTo().Frame(frameID);
d1.findElement(By.id("aContinueShopping")).click();

Il n'y a pas de " nom " ou " id " sur l'iframe, vous devrez donc utiliser un WebElement ou un numérique pour le trouver.

Une fois que vous avez terminé avec cet iframe, vous revenez à ' top ' en utilisant:

d1.SwitchTo().DefaultContent();
 5
Author: Richard, 2013-10-30 22:14:03