Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Selenium:如何处理基于重定向数量显示的模式对话框_C#_Selenium_Selenium Webdriver - Fatal编程技术网

C# Selenium:如何处理基于重定向数量显示的模式对话框

C# Selenium:如何处理基于重定向数量显示的模式对话框,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,我使用的是SeleniumWebDriver,使用的是C#(页面工厂模型) 无论用户在哪个页面上,我的测试应用程序在站点第三次重定向后都会给出一个反馈对话框 处理此反馈对话框的最佳方式是什么?我只需要关闭对话框 我应该在每个页面的构造函数中检查这个吗? 或 我应该在测试用例级别使用一些全局变量来记录重定向的数量并进行检查吗?在这种情况下,我应该如何记录重定向 或者其他更好的解决方案?我不是c#selenium编码测试人员(我使用Java)。对于模型对话框,我们可以基于此使用它 基于此,。我们也可

我使用的是SeleniumWebDriver,使用的是C#(页面工厂模型)

无论用户在哪个页面上,我的测试应用程序在站点第三次重定向后都会给出一个反馈对话框

处理此反馈对话框的最佳方式是什么?我只需要关闭对话框

我应该在每个页面的构造函数中检查这个吗? 或 我应该在测试用例级别使用一些全局变量来记录重定向的数量并进行检查吗?在这种情况下,我应该如何记录重定向

或者其他更好的解决方案?

我不是c#selenium编码测试人员(我使用Java)。对于模型对话框,我们可以基于此使用它

基于此,。我们也可以使用

WebDriver popup=WebDriver.switchTo().window(句柄)


您也可以检查此链接

问题是,这是一个模式对话框,而不是JS警报:(我使用一种方法,通过将上面的IsAlertPresent()包装在一个“for-If”循环中来等待预期的警报,因为有时警报会出现延迟。
private bool IsAlertPresent()
    {
        try
        {
            driver.SwitchTo().Alert();
            return true;
        }
        catch (NoAlertPresentException)
        {
            return false;
        }
    }

    private string CloseAlertAndGetItsText() {
        try {
            IAlert alert = driver.SwitchTo().Alert();
            string alertText = alert.Text;
            if (acceptNextAlert) {
                alert.Accept();
            } else {
                alert.Dismiss();
            }
            return alertText;
        } finally {
            acceptNextAlert = true;
        }
    }
    popup.close();