2011-08-26 44 views
0

我最近开始了一项新的测试工作,而且我的前任使用watin运行了一个自动化套件,我之前没有经验过,因此如果我无法给您提供支持,我很抱歉相关信息 当我运行套件它(对IE 8.0.7601.17514)似乎被卡住时,曾经有一个确认对话框,下一步就是按OKWatin无法识别确认对话框确定按钮

//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对话框和较新的对话框之间存在的差异。

回答

0

我曾与IE 9

类似的问题我用下面的模拟快捷键上的对话

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

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

这是否帮助?

+0

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