Issue 5158: Modal dialog present (UnexpectedAlertOpen) issue in IE (Similar issue like 3360)

https://code.google.com/p/selenium/issues/detail?id=5158
 
Reported by mailtopa...@gmail.comFeb 13, 2013
Hi,
This is pavan,i would like to say thanks for providing great guidance for the people who are working on selenium like me.
Issue: 
 i am also encountering the same problem but i could not get the proper solution to resolve this issue

Actually over the period of 2 months we are developing automation application using selenium webdriver and it is running fine and we ran some cycles of regression suites,but now suddenly we are getting the following error Modal dialog present (UnexpectedAlertOpen)but i have verified,there is no model dialog box opened and also there is no IE dev tool opened but still i am getting this issue.
please find the attachment for reference

Configuration details:
IE driver 2.25.2.0
Windows7(32bit)
IE8

we are using C# with selenium

Please help me asap.


Feb 13, 2013
Project Member #1 barancev
Selenium automatically closes unhandled modal diaplogs (and throws an exception). You can disable closing such diaplog you can set capability unexpectedAlertBehaviour to "ignore" (it is "dismiss" by default). In this case an exception will be thrown, but the dialog will not be closed and you'll be able to see it.

P.S. By the way, the issue has no attachment you mentioned)
P.P.S. Why do yo use 2.25 ? The latest version is 2.29 at the moment
 
 
 
Status: NeedsClarification 
 
 
 
Feb 13, 2013
#2 mailtopa...@gmail.com
Hi Can you just make me understand that how to set capability unexpectedAlertBehaviour to "ignore"

and one more importnat ponit is that this error is occuring only on the machine which has mcafee site adviser in rest of all machines scripts are running as expected

i did arrach the doc but no idea why you could not get it.

again i am attaching the same here, please find the same
Modaldialog.doc 
199 KB   Download
Feb 13, 2013
#3 mailtopa...@gmail.com
namespace Permedion.Automation.Core
{
    #region Import Namespaces
    using System;
    using System.Configuration;
    using System.IO;
    using System.Xml;
    using OpenQA.Selenium;
    using OpenQA.Selenium.Chrome;
    using OpenQA.Selenium.Firefox;
    using OpenQA.Selenium.IE;
    using OpenQA.Selenium.Remote;
    using OpenQA.Selenium.UnhandledAlertException;
    using OpenQA.Selenium.Safari;
    using System.Windows.Automation;
    using System.Threading;
    #endregion

    /// <summary>
    /// Public class to implement the functionalities related to AutomationBase.
    /// </summary>
    public class AutomationBase
    {
        #region Properties
        /// <summary>
        /// Gets or sets the value of the CurrentWebDriver of type OpenQA.Selenium.IWebDriver.
        /// </summary>
        public static IWebDriver CurrentWebDriver
        {
            get;
            set;
        }
        private Thread autoThread;
        
        //Declaring global variables
        public static string timerValue;
        public static int iterationCount =1;
        public static string browserType;
        #endregion
       

        #region Methods
        /// <summary>
        /// Public method which includes logic related to StartBrowser.
        /// </summary>
        /// <returns>Returns object of type OpenQA.Selenium.IWebDriver.</returns>
        public static IWebDriver StartBrowser()
        {
            if (iterationCount <= 1)
            {
              timerValue = (DateTime.Now).ToString().Replace(":", ".");
              iterationCount = iterationCount + 1;
            }
                
            browserType = ConfigurationManager.AppSettings.Get("Browser");
            switch (browserType.ToUpper())
            {
                case "IE":                      
                     InternetExplorerOptions options = new InternetExplorerOptions();
                     options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
                     options.IgnoreZoomLevel = true;                     
                     DesiredCapabilities cap = DesiredCapabilities.InternetExplorer();                    
                     CurrentWebDriver = new InternetExplorerDriver(options);                    
                     break;
                case "SAFARI":
                    CurrentWebDriver = new SafariDriver();
                    break;
                case "CHROME":
                    CurrentWebDriver = new ChromeDriver();
                    break;
                case "FF":
                default:
                    FirefoxProfile profile = new FirefoxProfile();
                    profile.AcceptUntrustedCertificates = true;
                    CurrentWebDriver = new FirefoxDriver(profile);
                    break;
            }

            return CurrentWebDriver;
        }
Feb 13, 2013
#4 mailtopa...@gmail.com
Please find the above piece of code ant make me understand where i went worng.

Thanks,
Pavan
Feb 14, 2013
#5 mailtopa...@gmail.com
As you suggested i had configured the selenium with latest drivers i.e 2.9 but still i am facing the same issue with diffrent alert message box.

i am not sure how to use capabilities with options, please help me in this since i am not able to move forward.

the only one diffrence i can see after installing the latest drivers is only change in alert messgae apart from that nothing is workedout.

   InternetExplorerOptions options = new InternetExplorerOptions();
                    options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
                    options.IgnoreZoomLevel = true;
                    DesiredCapabilities ieCapabilities = options.ToCapabilities() as DesiredCapabilities;
                    ieCapabilities.SetCapability("Ignore",InternetExplorerUnexpectedAlertBehavior.Ignore);
                    CurrentWebDriver = new InternetExplorerDriver(options);   
Feb 14, 2013
Project Member #6 james.h....@gmail.com
@mailtopavan1987 With the latest .NET bindings, you should not have to use DesiredCapabilities directly in most cases. Specifically, you should be able to do the following:

InternetExplorerOptions options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
options.IgnoreZoomLevel = true;
options.UnexpectedAlertBehavior = InternetExplorerUnexpectedAlertBehavior.Ignore;
CurrentWebDriver = new InternetExplorerDriver(options);

Incidentally, I would encourage you to not use the IntroduceInstabilityByIgnoringProtectedModeSettings option if at all possible[1].

[1] http://jimevansmusic.blogspot.com/2012/08/youre-doing-it-wrong-protected-mode-and.html
Feb 17, 2013
#7 mailtopa...@gmail.com
Hi,
I tried with all the solutions given by you but still i am getting the same error messgae.

actually there is no opened dialog box to say options.UnexpectedAlertBehavior = InternetExplorerUnexpectedAlertBehavior.Ignore; but i am wondering why still it is giving such error saying that modal dialog box present (UnhandledAlertException unhandled by user code).

this is happening since we have installed mcafee-siteadviser patch before that no such error occured.

is it because of mcafee-siteadiver? if so is there any solution to overcome this?
Feb 17, 2013
Project Member #8 barancev
See also  issue 4839 
 
 
 
Labels: Browser-IE 
 
 
 
Feb 21, 2013
Project Member #9 james.h....@gmail.com
Since this behavior is only observed where McAfee SiteAdvisor is installed, I'm calling this a duplicate of #4839.
 
 
 
Status: Duplicate 
Labels: -Status-Untriaged 
Mergedinto: 4839 
原文地址:https://www.cnblogs.com/lci05/p/4206352.html