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;