我有一个创建新帐户的方案,我需要在弹出窗口中提供帐户名称,然后单击“确定”。
我已经使用了弹出窗口的机器人处理和运行脚本,警报关闭并创建了一个新帐户,但得到以下错误:
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)(警告: 服务器没有提供任何堆栈跟踪信息)
答案 0 :(得分:0)
由于thread.sleep()
需要Exception
处理,您可能会将异常抛给调用方?
此外,既然你说它有效,但只是报告了另一个异常错误,也许你应该把代码放在try/catch
中并陷入任何睡眠interruption exception
(不记得确切的措辞)然后还有它报告的另一个异常,并且只是忽略这两个异常,但抛出遇到的任何其他异常。
我意识到目标(通常)是找到原因并修复它,现在至少可以忽略它。