Selenium 2 WebDriver UnhandledAlertException Java

在我开始受到责骂之前,我已经阅读了大部分关于此问题的现有问题,并应用了不同的解决方案(大多数重复同样的事情),但它仍然不适用于我。 我有一个包含所有必要依赖项的maven项目,测试中的网站专门针对IE进行,并要求我拥有特定的证书才能访问它。 我有它的证书,当我进入网站时,在加载页面之前它要求我确认我有证书,我需要在弹出窗口确认,然后登录页面完全加载。 图像显示我接受证书之前的页面

我手动接受证书后加载的页面

NetBeans持久错误消息

我做过典型的做法:

WebDriverWait wait = new WebDriverWait(driver, 3); try { // Handle alert box driver.navigate().to("https://ke.m-pesa.com/ke/"); wait.until(ExpectedConditions.alertIsPresent()); Alert alert = driver.switchTo().alert(); alert.accept(); } catch(Exception e) { //whatever } 

你能告诉我哪里出错了吗? 到目前为止,到目前为止我只使用了Selenium RC,所以这个webdriver的东西对我来说仍然是一种新的东西。 如果您需要我提供更多信息,请告诉我。 为什么我仍然得到UnhandledAlertException? 为什么我手动按下确定按钮之前无法访问登录页面?

你尝试过使用Robot吗? 就像是 :

  Alert alert = driver.switchTo().alert(); Robot a = new Robot(); a.keyPress(KeyEvent.VK_ENTER); 

为什么机器人而不是动作

从这个答案 :

这些工具的工作方式存在巨大差异。 Selenium使用WebDriver API并将命令发送到浏览器以执行操作(通过“JSON有线协议”)。

Java AWT Robot使用本机系统事件来控制鼠标和键盘。

如果您正在进行浏览器自动化,理想情况下,您不会使用像Robot这样的东西,因为通常selenium提供的function绰绰有余。 虽然,有些情况下打开了浏览器或本机操作系统弹出窗口,例如上传/下载文件 – 这也可以通过机器人解决 –