1

我打开一个页面并在测试结束时尝试通过在 finally 块中调用我的 CelanUp() 来关闭它,但有时 IEDriverServer 和浏览器保持打开状态。发生这种情况时没有打开的弹出窗口。

    public void CelanUp ()
    {
        string dialogResponse = string.Empty;

        if (m_Driver != null)
        {
            //Dismiss all dialogs:
            dialogResponse = CloseLogonDialog();
            dialogResponse = CloseConfirmDialog();

            m_Driver.Quit();
            m_Driver = null;
        }

        if (dialogResponse != string.Empty)
        {
            throw new ApplicationException(dialogResponse);
        }
    }

关闭浏览器和 IEDriverServer 我还能做什么?

编辑:

因为 Selenium 的 Quit 让我失望,因为我打开了窗口,所以我查看了其他解决方案:

try
{
    foreach (Process proc in Process.GetProcessesByName("IEDriverServer.exe"))
    {
        proc.Kill();
    }
}
catch(Exception ex)
{
    MessageBox.Show(ex.Message);
}
4

1 回答 1

1

根据您使用的单元测试软件,我建议您将浏览器委托给单元测试框架,而不是执行这样的逻辑。

将清理方法放在一个After方法中。如,After each test... do this

在java中,使用jUnit,它会这样写。

@After
public void cleanUp() {
  driver.quit();
}

这表示,after each test, call driver.quit()

于 2013-09-26T19:47:52.550 回答