Une autre option pourrait être d'utiliser le AlertAndConfirmDialogHandler. Ce gestionnaire ferme toutes les alertes ou confirme la boîte de dialogue qui apparaît mais d'abord il obtient le texte affiché par le dialogue et le stocke. Vous pouvez inspecter ce tableau de chaînes d'alertes et voir si le compte est zéro. Vous pouvez le faire dans Teardown ou FixtureTeardown de la classe de test.
Après une copie d'un test de la Watin unittest pour vous montrer comment vous pouvez utiliser ce gestionnaire:
[Test]
public void AlertAndConfirmDialogHandler()
{
DialogWatcher dialogWatcher;
Assert.AreEqual(0, Ie.DialogWatcher.Count, "DialogWatcher count should be zero before test");
// Create handler for Alert and confirm dialogs and register it.
var dialogHandler = new AlertAndConfirmDialogHandler();
using (new UseDialogOnce(Ie.DialogWatcher, dialogHandler))
{
Assert.AreEqual(0, dialogHandler.Count);
Ie.Button("helloid").Click();
Assert.AreEqual(1, dialogHandler.Count);
Assert.AreEqual("hello", dialogHandler.Alerts[0]);
// remove the alert text from the queue by using Pop
Assert.AreEqual("hello", dialogHandler.Pop());
Assert.AreEqual(0, dialogHandler.Count);
// Clear the queue
Ie.Button("helloid").Click();
Assert.AreEqual(1, dialogHandler.Count);
dialogHandler.Clear();
Assert.AreEqual(0, dialogHandler.Count);
dialogWatcher = Ie.DialogWatcher;
}
Assert.AreEqual(0, dialogWatcher.Count, "DialogWatcher count should be zero after test");
}
Cela me déclenche également de faire le comportement AutoClose plus connectable. Ce serait bien si l'on pouvait enregistrer un gestionnaire de dialogue qui sera appelé si aucun autre gestionnaire ne peut gérer une boîte de dialogue, au lieu de simplement fermer automatiquement les boîtes de dialogue.
HTH Jeroen van Menen plomb dev Watin
Je suis face à problème avec cette méthode, cela fonctionne parfois et ne parfois pas. – rahoolm