// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting.Logging; using OpenQA.Selenium.Appium.Windows; using System; using System.Diagnostics; using System.Threading; namespace CalculatorUITestFramework { public static class WindowsElementExtensions { /// /// Waits for an element to be displayed until the timeout is reached. /// /// WindowsElement in the Calculator application. /// Timeout in ms. public static void WaitForDisplayed(this WindowsElement element, int timeout = 2000) { Stopwatch timer = new Stopwatch(); timer.Reset(); timer.Start(); while (timer.ElapsedMilliseconds < timeout) { if (element.Displayed) { timer.Stop(); return; } Logger.LogMessage("Waiting for 10ms in WaitForDisplayed"); Thread.Sleep(10); } timer.Stop(); Assert.Fail(String.Format("{0} was not displayed in {1} ms", element, timeout)); } } }