3

请帮忙,我是 Selenium 的新手。我尝试自动化电子商务网站,但处理弹出窗口时遇到问题。这是场景:

  1. 访问http://www.lampsplus.com
  2. 单击标题部分中的销售链接。
  3. 单击页面上显示的第一个项目/产品。(这将显示产品页面)。
  4. 在产品页面上,单击红色的添加到购物车按钮。(这会将产品添加到购物车并显示一个弹出窗口)。
  5. 在弹出窗口中,单击深灰色的继续购物按钮。(这将关闭弹出窗口。)

我坚持第 5 步(错误消息:无法找到元素“继续购物按钮”)这是我在第 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

我知道 .getWindowHandle(); 方法。我尝试了它的几种变体,但都没有奏效。谁能给我一个想法如何处理它。非常感谢!我使用Java。

注意:我不为 LampsPlus 工作,也没有尝试推广他们的产品,这个网站仅用于培训目的。

4

1 回答 1

5

该元素aContinueShopping包含在 iframe 中。

您必须使用以下命令切换到 iframe:

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

iframe 上没有“名称”或“ID”,因此您必须使用 WebElement 或数字才能找到它。

完成该 iframe 后,您将使用以下命令切换回“顶部”:

d1.SwitchTo().DefaultContent();
于 2013-10-30T22:14:03.817 回答