gpt4 book ai didi

selenium - 如何使用 selenium webdriver 和 Java 处理弹出窗口

转载 作者:行者123 更新时间:2023-12-02 20:17:29 24 4
gpt4 key购买 nike

请帮忙,我是 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 工作,也无意推销他们的产品,选择该网站仅用于培训目的。

最佳答案

元素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();

关于selenium - 如何使用 selenium webdriver 和 Java 处理弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19694507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com