J'utilise l'outil de test WatiN avec Visual Studio 2005. Lorsque j'essaie de sélectionner une valeur dans ma zone de liste, j'obtiens une erreur «Accès refusé».Erreur d'accès refusé (Visual Studio et WatiN)
Répondre
Il s'agit d'un bogue dans la liste de sélection où, si la liste n'est pas prête à accepter une entrée, elle peut lancer plusieurs types d'exception. Nous résolvons comme ceci:
try
{
_domContainer.SelectList(_control.WatinAttribute).Focus();
_domContainer.SelectList(_control.WatinAttribute).Select(value);
}
catch (Exception e)
{
Console.WriteLine("Select list eception caught: " + e.Message + e.StackTrace);
// we have tried once already and failed, so let's wait for half a second
System.Threading.Thread.Sleep(500);
_domContainer.SelectList(_control.WatinAttribute).Select(value);
}
Et oui je sais que toutes les exceptions à avaler comme celui-ci est normalement mauvaise, mais si l'exception se produit à nouveau, il est jeté au code de test et le test échoue.
Je l'ai vu beaucoup avec les listes de sélection récemment lors de l'utilisation de la version bêta de WatiN 2.0. Au lieu d'utiliser l'option aSelectList.Select (strText), il semble fonctionner mieux quand vous faites ceci:
ie.SelectList(Find.ById("MySelect")).Option(Find.ByText("Option 1")).Select();
Cela peut également se produire lors de la modification d'un contrôle ASP.NET qui peuvent causer une auto-postback. La première modification sera enregistrée, mais l'élément suivant auquel vous essayez d'accéder affichera une erreur «Accès refusé» car il tente toujours d'accéder à l'ancienne page. Dans ce cas, vous pouvez essayer d'utiliser ie.WaitForComplete(), mais parfois cela est nécessaire:
ie.SelectList(Find.ById("AutoPostBackSelect")).Option(Find.ByText("Option")).Select();
System.Threading.Thread.Sleep(200); //Sleep to make sure post back registers
ie.WaitForComplete();
ie.SelectList(Find.ById("MySelect")).Refresh()
ie.SelectList(Find.ById("MySelect")).Option(Find.ByText("Option 1")).Select();
Je remarqué cela se produit si vous essayez de sélectionner une valeur qui est déjà sélectionnée.
Vous pouvez contourner cela avec un contrôle préalable:
if(_sel_ddlPeriodFromDay.GetValue("value")!="1")
_sel_ddlPeriodFromDay.SelectByValue("1");
ou peut-être utiliser une prise d'essai?
try{_sel_ddlPeriodFromDay.SelectByValue("1");}
catch{}
- 1. Utilisation de WatiN avec Visual Studio 2005
- 2. Erreur Visual Studio?
- 3. Visual Studio F # Erreur
- 4. Erreur Visual Studio Runtime
- 5. IE8 + erreur Visual Studio
- 6. Accès refusé erreur lorsque la solution dans la construction de Visual Studio 2005
- 7. Erreur de l'éditeur de liens Visual Studio 2008: Échec de l'opération ALINK (80070005): Accès refusé
- 8. Accès refusé ASP.net Erreur
- 9. « Accès refusé » erreur javascript
- 10. Visual Studio Setup et build déploiement échoue sans erreur
- 11. C# system.net.FileWebRequest Accès refusé erreur
- 12. Erreur d'importation SharePoint - 'Accès refusé'
- 13. Post-build Erreur d'événement Visual Studio 2008
- 14. Watin et PDF
- 15. Chaînes verbatim et Visual Studio
- 16. Visual Studio 2008 et Wine
- 17. Codenamed Products et Visual Studio
- 18. Vista, Visual Studio et OutOfMemoryExceptions
- 19. Visual Studio et mémoire partagée
- 20. Visual FoxPro - L'accès au fichier est refusé
- 21. Custom Control et Visual Studio 2008 SP1
- 22. WatiN dans Visual Studio 2008 - échec de la deuxième méthode de test
- 23. GetPrivateProfileString() donne accès refusé erreur sur Vista
- 24. Accès au fichier refusé, erreur d'application de la console C#
- 25. Addin de Visual Studio - erreur "fichier dans l'état de zombie"
- 26. Erreur lors de la fermeture de Visual Studio 2008
- 27. Erreur de liaison 2005, 2001 dans Visual Studio 2008
- 28. Erreur lors de l'installation de Visual Studio 2005 sur Vista
- 29. Erreur «Package Load Failure» de Visual Studio 2008
- 30. Erreur lors de l'installation de Visual Studio 2005 Express Edition