【问题标题】:Windows handling in Selenium webdriver using java使用 java 在 Selenium webdriver 中处理 Windows
【发布时间】:2017-06-01 12:54:02
【问题描述】:

我有一个场景如下

1. Login to the application
2. click on a button (say Buy)
3. This will take me to a new window opened with a new URL automatically
4. Perform actions in the new window
5. Quit

请提供确切的代码来解决这个问题。我尝试使用网站中存在的对我不起作用的可用代码

【问题讨论】:

  • 我希望上面的代码对你有用。让您切换到子窗口并执行操作。它还有练习示例,提供有关在窗口之间切换的提示信息
  • 请参阅stackoverflow.com/help/how-to-ask。至少您应该提及您采取的哪些步骤对您不起作用,以及出现的错误是什么。简单地复制和粘贴任何问题,不会让你到任何地方,并且会吸引反对票。
  • 我是 selenium 的新手,而不是 java 背景。所以需要像你这样的专家的帮助。您提供的链接帮助了我并解决了我的问题。谢谢

标签: java selenium-webdriver window-handles


【解决方案1】:

您可以尝试以下模式:-

   Webdriver driver = new ChromeDriver();
   driver.get("URL of application");
   driver.findElement(By.id("username").sendKeys("user1");
   driver.findElement(By.id("password").sendKeys("pass1");
   driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
   driver.findElement(By.xPath("xpath of button").click();

//现在您可以切换到弹出窗口并相应地接受或关闭它

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

   driver.quit();

如果您向 SO 社区提供应用程序的 URL,则只能提供完整的代码。

【讨论】:

  • 我认为您误解了 OP 的问题,因为此处没有发挥警报。我认为您可能也无法正确理解隐式等待。应该在驱动程序初始化之后定义隐式等待,并且您需要超过三秒钟。您的前两个 findelement 语句可能会失败,因为没有定义隐式等待。
  • @Bill,我非常了解这个问题,因为 Meghasri 的陈述是笼统的,所以我的回答是笼统的,这样她就可以根据需要进一步增强它。就 2 秒的隐式等待而言,这是一种示例,因为我们不了解应用程序及其行为,所以我只是输入了任何数字。对于前 2 个 findelements,如果页面刷新则需要等待,否则不需要等待。
猜你喜欢
  • 2012-01-04
  • 2012-04-14
  • 1970-01-01
  • 2016-03-23
  • 2016-04-01
  • 2015-07-26
  • 2018-08-28
  • 2013-07-19
  • 2012-06-30
相关资源
最近更新 更多