警报已关闭,但获取意外警报打开错误

时间:2015-12-03 04:41:21

标签: selenium-webdriver alert

我有一个创建新帐户的方案,我需要在弹出窗口中提供帐户名称,然后单击“确定”。
我已经使用了弹出窗口的机器人处理和运行脚本,警报关闭并创建了一个新帐户,但得到以下错误:

  

org.openqa.selenium.UnhandledAlertException:意外警报打开   (会话信息:chrome = 46.0.2490.86)(驱动信息:   chromedriver = 2.9.248315,platform = Windows NT 6.3 x86_64)
  (警告:服务器未提供任何堆栈跟踪信息)

我尝试过以下代码:

///String handle= driver.getWindowHandle();
driver.findElement(By.xpath("//*[@id='createAccount']/p")).click();
Thread.sleep(300);
Robot rb =new Robot();
rb.keyPress(KeyEvent.VK_O);
rb.keyRelease(KeyEvent.VK_O);
rb.keyPress(KeyEvent.VK_U);
rb.keyRelease(KeyEvent.VK_U);
Thread.sleep(200);
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);
Thread.sleep(400);
///driver.switchTo().window(handle);
//* Alert alt = driver.switchTo().alert();
//*alt.accept();
// driver.switchTo().alert().accept();
driver.findElement(By.id("passwd")).sendKeys("Abcd@123");    

评论的行是我从谷歌获得的解决方案,但这也没有用。

其他信息:我什么时候

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

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

我收到以下错误:

  

org.openqa.selenium.WebDriverException:未知错误:未处理   检查员错误:{“code”: - 32603,“message”:“无法处理JavaScript   对话框“}(会话信息:chrome = 46.0.2490.86)(驱动程序信息:   chromedriver = 2.9.248315,platform = Windows NT 6.3 x86_64)(警告:   服务器没有提供任何堆栈跟踪信息)

1 个答案:

答案 0 :(得分:0)

由于thread.sleep()需要Exception处理,您可能会将异常抛给调用方?

此外,既然你说它有效,但只是报告了另一个异常错误,也许你应该把代码放在try/catch中并陷入任何睡眠interruption exception(不记得确切的措辞)然后还有它报告的另一个异常,并且只是忽略这两个异常,但抛出遇到的任何其他异常。

我意识到目标(通常)是找到原因并修复它,现在至少可以忽略它。