2

我试图在使用 Selenium WebDriver (selenium-dotnet-2.25.1) + IEDriverServer.exe (IEDriverServer_Win32_2.25.2) 重新发布数据后传递模式警报窗口。

这是我的测试 C# 代码:

    static void Main(string[] args)
    {
        IWebDriver driver = new OpenQA.Selenium.IE.InternetExplorerDriver();

        // Navigating to gmail.com and submitting wrong data
        driver.Navigate().GoToUrl("gmail.com");
        driver.FindElement(By.Id("Email")).SendKeys("testuser");
        driver.FindElement(By.Id("signIn")).Click();
        Thread.Sleep(8000);

        // making the data re-post by F5
        driver.Navigate().Refresh();

        // Handling the aller and accepting it
        IAlert alert = driver.SwitchTo().Alert();
        Console.WriteLine(alert.Text);
        alert.Accept();
    }

这是程序输出:

    Started InternetExplorerDriver server (32-bit)
    2.25.2.0
    Listening on port 2783
    To display the webpage again, Internet Explorer needs to
    resend the information you've previously submitted.

    If you were making a purchase, you should click Cancel to
    avoid a duplicate transaction. Otherwise, click Retry to display
    the webpage again.
    Press any key to continue . . .                 

结果,警报窗口消失,没有任何数据重新发布,IE 显示“页面已过期”。

请指教。

4

1 回答 1

0

在 Selenium WebDriver 中,“警报”被定义为一件事,而且只有一件事:一个通过 JavaScript 显示的对话框。也就是说,Alert API 只能可靠地用于由 JavaScript 、 或 函数创建alert()confirm()对话框prompt()。对于任何其他对话框,您可能会很幸运,但 API 并非设计用于处理这些对话框。

于 2012-08-09T19:10:59.967 回答