由于在尝试执行其他操作时弹出窗口很重要,因此我建议采用以下方法:EventFiringWebDriver允许您定义将在特定事件之前或之后立即运行的自定义代码。在这里查看示例。
不幸的是,我很久没有在.Net上写任何东西了,所以我的C#技能生锈了。因此,大致如下所示:
IWebDriver driver = new FirefoxDriver();EventFiringWebDriver eventDriver = new EventFiringWebDriver(driver);// add all relevant events, for example before clicking on something:eventDriver.ElementClicking = new EventHandler<FindElementEventArgs>(checkPopup);driver = eventDriver; // only need EventFiringWebDriver
然后
static void checkPopup(object sender, OpenQA.Selenium.Support.Events. WebElementEventArgs e) { EventFiringWebDriver driver = (sender as OpenQA.Selenium.Support.Events.EventFiringWebDriver); try { alert alert = driver.SwitchTo().alert(); alert.accept(); } catch (NoalertPresentException ex) { // nothing to do - just continue }}因此,现在,每次脚本要单击某项时,它都会首先检查弹出窗口,并在需要时接受它。



