一尘不染

seleniumC#接受确认框

selenium

我已经在c#中使用selenium编写了一个nUnit测试。

一切顺利,直到我必须确认JS确认框。

这是我正在使用的代码:

this.driver.FindElement(By.Id("submitButton")).Click();
this.driver.SwitchTo().Alert().Accept();

确认框出现在提交按钮之后。确认出现,然后立即消失,但不提交表单。无论上面的accept()行如何,其行为都是相同的。

我正在使用Firefox v15.0.1和seleniumv2.24

我试图在提交点击和确认接受之间放置一个Thread.Sleep。

我读过的所有内容都表明,selenium驱动程序将自动发送确认OK,但是似乎正在发生其他事情。


阅读 267

收藏
2020-06-26

共1个答案

一尘不染

在此问题中,我将尝试验证确认框的存在。它是这样的:

this.driver.FindElement(By.Id("submitButton")).Click();


 boolean presentFlag = false;

  try {

   // Check the presence of alert
   Alert alert = driver.switchTo().alert();
   // Alert present; set the flag
   presentFlag = true;
   // if present consume the alert
   alert.accept();

  } catch (NoAlertPresentException ex) {
   // Alert not present
   ex.printStackTrace();
  }

  return presentFlag;

 }

然后,如果不起作用。尝试逐步调试。关于警报(确认框)一些额外的信息处理硒这里 希望这在某种程度上可以帮助你

2020-06-26