Само всплывающее окно Ajax не должно создавать проблем, если вы обрабатываете время загрузки элемента управления асинхронно. Если вы используете инструментарий управления ajax, вы можете решить его следующим образом
int timeout = 20;
for (i=0; i < timeout; i++)
{
bool blocked = Convert.ToBoolean(ie.Eval("Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack();"));
if (blocked)
{
System.Threading.Thread.Sleep(200);
}
else
{
break;
}
}
С видимым элементом управления вы сможете получить к нему обычный доступ.
В Watin 1.1.4 добавлена поддержка WaitUntil и для элементов управления, но я не использовал его лично.
// Wait until some textfield is enabled
textfield.WaitUntil("disable", false.ToSting, 10);