Ошибка при попытке выполнить более одного теста закодированного пользовательского интерфейса одновременно - PullRequest
0 голосов
/ 13 октября 2011

У меня есть набор кодированных тестов пользовательского интерфейса, которые я выполняю для веб-приложения в IE 8. Я могу выполнить любой отдельный тест без ошибок.Когда я пытаюсь запустить более одного теста одновременно, только первый тест выполняется без ошибок;при попытке второго теста я получаю следующую ошибку:

"COM-объект, который был отделен от лежащего в его основе RCW, не может быть использован."

И вот трассировка стека.Я должен добавить, что я заменил UIMap по умолчанию своими собственными классами, определяющими элементы пользовательского интерфейса:

System.Variant.MarshalHelperConvertObjectToVariant(Object o, Variant& v)
System.StubHelpers.ObjectMarshaler.ConvertToNative(Object objSrc, IntPtr pDstVariant)
Microsoft.VisualStudio.TestTools.UITest.Playback.Engine.IRPFPlayback.ScreenElementFromNativeElement(Object varNativeElement, String technologyName)
Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.FromNativeElement(Object nativeElement, String technologyName)
Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.FromTechnologyElementInternal(IUITechnologyElement technologyElement)
Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.FromTechnologyElement(IUITechnologyElement element)
Microsoft.VisualStudio.TestTools.UITesting.UITestControl..ctor(IUITechnologyElement element, UITestControl searchContainer)
Microsoft.VisualStudio.TestTools.UITesting.BrowserWindow.get_CurrentDocumentWindow()
Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.GetUITestControlRecursive(Boolean useCache, Boolean alwaysSearch, ISearchArgument searchArg, IList`1 windowTitles, Int32& timeLeft)
Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.GetUITestControlRecursive(Boolean useCache, Boolean alwaysSearch, ISearchArgument searchArg, IList`1 windowTitles, Int32& timeLeft)
Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.GetElement(Boolean useCache, ISearchArgument searchArg)
Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.Search(ISearchArgument searchArg)
Microsoft.VisualStudio.TestTools.UITesting.UITestControl.FindInternal()
Microsoft.VisualStudio.TestTools.UITesting.UITestControl.Find()
Microsoft.VisualStudio.TestTools.UITesting.UITestControl.GetProperty(String propertyName)
Microsoft.VisualStudio.TestTools.UITesting.UITestControl.GetPropertyInternal[T](String propertyName)
Microsoft.VisualStudio.TestTools.UITesting.UITestControl.get_Exists()
VerifySuccessfulLogon()[...]LogOnPage.cs: line 97
AttemptLogOn()[...]WebUITest.cs: line 111

Заранее спасибо!-Джеймс

1 Ответ

1 голос
/ 05 октября 2012

Добавьте следующую строку в окно.

this.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);

Например,

Чтобы открыть окно Adobe Acrobat

public class UIAdobeAcrobatProWindow : WinWindow
{        
    public UIAdobeAcrobatProWindow()
    {
        #region Search Criteria
        this.SearchProperties.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "Adobe Acrobat Pro", PropertyExpressionOperator.Contains));
        **this.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);**
        this.SearchProperties[WinWindow.PropertyNames.ClassName] = "AcrobatSDIWindow";
        #endregion
    }
}

Надеюсь, это решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...