Я недавно начал новую работу по тестированию, и мой предшественник запустил пакет автоматизации с использованием 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();
}
}
}
Я недавно восстановил свой компьютер (ну, мой системный администратор) и это неЭто проблема до того, как она была восстановлена, но я не могу думать, что могло измениться
Любая помощь будет принята с благодарностью
Редактировать
Iна самом деле не нужно было менять код, мне просто пришлось обновить мою версию Watin, поскольку она не могла справиться с тем, что когда-либо отличалось между более ранними диалоговыми окнами IE 8 и более новыми.