c# Watin -当浏览器抛出一个弹出窗口(来自网页的消息)时跳过迭代

本文关键字:网页 迭代 消息 窗口 一个 Watin 浏览器 | 更新日期: 2023-09-27 18:19:25

Watin无法捕捉IE 9的浏览器弹出窗口。相反,我想跳过它,并继续与程序的其余部分,如果这样的弹出被抛出。可以这样跳过吗?

Popups是JavaScript的弹出窗口

c# Watin -当浏览器抛出一个弹出窗口(来自网页的消息)时跳过迭代

你提到的弹出窗口是JS弹出窗口,你不能忽略它们,继续作为浏览器主窗口变亮,控件得到弹出消息

你可以试试

var browser = new IE();
var url = "someurl";
browser.GoTo(url);

//在一些导航之后出现一个弹出窗口

//当popupappear控件不自动返回代码并在IE繁忙时给出超时。

所以我们需要在这里使用

somebtton.ClickNoWait() //In case of Button Click
browser.GoToNoWait()   // In case of pop up appearing just after navigation.

            //Finds the alert dialog if it appears
        AlertDialogHandler AlertDialog = new AlertDialogHandler();
        try
        {
            //Code for checking if the case number is invalid and a dialog box appears.
            Settings.AutoStartDialogWatcher = true;
            Settings.AutoCloseDialogs = true;
            browser.AddDialogHandler(AlertDialog);
            AlertDialog.WaitUntilExists();
            //If alert dialog is found then close the dialog and log error
            if (AlertDialog.Exists())
            {
                //Click OK button of the dialog so that dialog gets closed
                AlertDialog.OKButton.Click();
                browser.WaitForComplete();
                browser.RemoveDialogHandler(AlertDialog);                    
            }
        }
        catch
        {
                //Removes the dialog handler if the Dialog dosen't appear within 30 secs.
                browser.RemoveDialogHandler(AlertDialog);               
        }

尝试一下,如果你仍然面临这个问题,请显示一些类似于你正在做的代码。