Watin无法识别确认对话框OK按钮

时间:2011-08-26 10:25:10

标签: internet-explorer-8 automated-tests watin

我最近开始了一项新的测试工作,而我的前任使用watin运行了一个自动化套件,我之前没有经验,所以如果我无法向您提供相关信息,我很抱歉 当我运行套件时(对于IE 8.0.7601.17514),当有确认对话框时,它似乎会卡住,下一步是按OK

//Enter invalid data
            var confirmDialog = new ConfirmDialogHandler();
            IE.DialogWatcher.Add(confirmDialog);
            using (new UseDialogOnce(IE.DialogWatcher, confirmDialog))
            {
                //Click to reset data entry
                IE.Page<DataEntryPage>().ResetVoucherButton.ClickNoWait();
                confirmDialog.WaitUntilExists(40000);
                confirmDialog.OKButton.Click();
                WaitForPostBackToComplete.WaitForAsyncPostBackToComplete(IE);
            }

它只是挂在那里,等待超时时间过去。

我认为问题出在我的IEStaticInstanceHelper.cs文件中,但似乎是正确的

using System.Threading;
using WatiN.Core;

namespace WatiN
{
    public class IEStaticInstanceHelper
    {
        private IE _ie;
        private int _ieThread;
        private string _ieHwnd;

        public IE IE
        {
            get
            {
                var currentThreadId = GetCurrentThreadId();
                if (currentThreadId != _ieThread)
                {
                    _ie = IE.AttachTo<IE>(Find.By("hwnd", _ieHwnd));
                    _ieThread = currentThreadId;
                }
                return _ie;
            }
            set
            {
                _ie = value;
                _ieHwnd = _ie.hWnd.ToString();
                _ieThread = GetCurrentThreadId();
            }
        }

        private int GetCurrentThreadId()
        {
            return Thread.CurrentThread.GetHashCode();
        }
    }
}

我最近重建了我的计算机(我的系统管理员确实做过),这在重建之前不是问题,但我想不出可能发生的变化

非常感谢任何帮助

修改

我实际上不需要更改代码,我只需要更新我的Watin版本,因为它无法处理早期IE 8对话框和新版本之间的差异。

1 个答案:

答案 0 :(得分:0)

我在IE 9中遇到了类似的问题。

我使用以下内容模拟对话框上的快捷键

 using (browser)
                    {
                        SendKeys.SendWait("+(%S)");
                    }

发送密钥= http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx

这有帮助吗?