Ve VS 2013 pomocí Coded UI Test Builderu nahrávám skript pro proklikání stránek na www.havit.cz. Test se podaří vyrobit, ale při přehrávání dostávám výjimku:
Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnBlockedControlException: Another control is blocking the control. Please make the blocked control visible and retry the action. Additional Details: TechnologyName: 'Web' ControlType: 'Hyperlink' TagName: 'A' Id: '' Name: '' Target: '' InnerText: '…' ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0xF004F003
Na internetu se tomuto problému věnují obsáhlé diskuse, většinou okolo VS 2012 a IE9/10. Většina doporučených řešení spočívá v odinstalaci IE10, odinstalaci patche KB2870699 nebo instalaci VS 2012 Update 4. Některé řešení většině zabírá.
My jsme však o verzi dále – VS 2013 a IE 11, kde žádné z předchozích řešení nefunguje. Chyba se shodně projevuje na šesti ze sedmi počítačů, nepůjde tedy o náhodný problém s jedním počítačem. Shodou náhod reinstaluji jeden starý stroj, zkouším tedy čistou instalaci (Windows 7, Internet Explorer 11, Visual Studio 2013, kompletní aktualizace Windows Update) a ověřuji, že problém se objevuje i zde.
Výjimka říká, že se nepodařilo na control kliknout, že je z nějakého důvodu blokovaný. Pokud zkusím zobrazit místo, kde se control nachází (metodou DrawHightlight() ), je místo označeno správně, takže se domnívám, že v hledání controlu by neměl být problém a mělo by jít skutečně o problém přehrávání. K mému překvapení zabírá řešení, které čistě náhodně zkouším – nastavení AlwaysSearchControls na true.
Playback.PlaybackSettings.AlwaysSearchControls = true;
Pingback: Coded UI Tests: The playback failed to find the control with the given search properties. | HAVIT Knowledge Base