diff --git a/src/CalculatorUITestFramework/CalculatorResults.cs b/src/CalculatorUITestFramework/CalculatorResults.cs index 6e6815d..bef7a42 100644 --- a/src/CalculatorUITestFramework/CalculatorResults.cs +++ b/src/CalculatorUITestFramework/CalculatorResults.cs @@ -13,8 +13,6 @@ public class CalculatorResults private WindowsElement CalculatorAlwaysOnTopResults => this.session.TryFindElementByAccessibilityId("CalculatorAlwaysOnTopResults"); private WindowsElement CalculatorResult => this.session.TryFindElementByAccessibilityId("CalculatorResults"); private WindowsElement CalculatorExpression => this.session.TryFindElementByAccessibilityId("CalculatorExpression"); - private WindowsElement MenuItemCopy => this.session.WaitForElementByAccessibilityId("CopyMenuItem"); - private WindowsElement MenuItemPaste => this.session.WaitForElementByAccessibilityId("PasteMenuItem"); /// /// Gets the text from the display control in AoT mode and removes the narrator text that is not displayed in the UI. @@ -64,33 +62,5 @@ public void IsResultsExpressionClear() throw new Exception("The Calculator Expression is not clear"); } } - - /// - /// Opens the context menu in order to be able to click its items - /// - private void OpenContextMenu() - { - Actions actions = new Actions(CalculatorResult.WrappedDriver); - // It is important to move not to the centre in order to avoid click on the text - actions.MoveToElement(CalculatorResult, 1,1).ContextClick().Perform(); - } - - /// - /// Opens the context menu and clicks the "Copy" item there - /// - public void ContextMenuItemCopyClick() - { - OpenContextMenu(); - MenuItemCopy.Click(); - } - - /// - /// Opens the context menu and clicks the "Paste" item there - /// - public void ContextMenuItemPasteClick() - { - OpenContextMenu(); - MenuItemPaste.Click(); - } } } diff --git a/src/CalculatorUITestFramework/WindowsDriverExtensions.cs b/src/CalculatorUITestFramework/WindowsDriverExtensions.cs index af36507..399584a 100644 --- a/src/CalculatorUITestFramework/WindowsDriverExtensions.cs +++ b/src/CalculatorUITestFramework/WindowsDriverExtensions.cs @@ -1,11 +1,8 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -using Microsoft.VisualStudio.TestTools.UnitTesting.Logging; using OpenQA.Selenium; using OpenQA.Selenium.Appium.Windows; -using System.Diagnostics; -using System.Threading; namespace CalculatorUITestFramework { @@ -71,43 +68,5 @@ public static void SwitchToCurrentWindowHandle(this WindowsDriver - /// Waits for an element to be created. - /// - /// this - /// the automation id - /// optional timeout in ms - /// the element with the matching automation id - public static WindowsElement WaitForElementByAccessibilityId(this WindowsDriver driver, string id, int timeout = 1000) - { - Stopwatch timer = new Stopwatch(); - timer.Reset(); - timer.Start(); - while (timer.ElapsedMilliseconds < timeout) - { - try - { - var element = driver.TryFindElementByAccessibilityId(id); - return element; - } - catch(WebDriverException ex) - { - if (ex.Message.Contains("An element could not be located on the page using the given search parameters")) - { - Logger.LogMessage("Element not found. Waiting for 10ms in WaitForElementByAccessibilityId"); - } - else - { - throw; - } - } - Thread.Sleep(10); - } - timer.Stop(); - - // one last attempt. Throws the not found exception if this fails - return driver.TryFindElementByAccessibilityId(id); - } } } diff --git a/src/CalculatorUITests/ProgrammerModeFunctionalTests.cs b/src/CalculatorUITests/ProgrammerModeFunctionalTests.cs index e5ca991..66e7988 100644 --- a/src/CalculatorUITests/ProgrammerModeFunctionalTests.cs +++ b/src/CalculatorUITests/ProgrammerModeFunctionalTests.cs @@ -899,10 +899,10 @@ public void Copy_And_Paste_Simple_Number() { page.ProgrammerOperators.BitFlip.Click(); page.ProgrammerOperators.Bit1.Click(); - page.CalculatorResults.ContextMenuItemCopyClick(); + CalculatorApp.Window.SendKeys(Keys.Control + "c" + Keys.Control); page.ProgrammerOperators.FullKeypad.Click(); page.StandardOperators.ClearEntryButton.Click(); - page.CalculatorResults.ContextMenuItemPasteClick(); + CalculatorApp.Window.SendKeys(Keys.Control + "v" + Keys.Control); Assert.AreEqual("2", page.CalculatorResults.GetCalculatorResultText()); } @@ -912,71 +912,13 @@ public void Copy_And_Paste_Invalid_Number() { page.ProgrammerOperators.BitFlip.Click(); page.ProgrammerOperators.Bit63.Click(); - page.CalculatorResults.ContextMenuItemCopyClick(); + CalculatorApp.Window.SendKeys(Keys.Control + "c" + Keys.Control); page.ProgrammerOperators.FullKeypad.Click(); page.StandardOperators.ClearEntryButton.Click(); page.ProgrammerOperators.QWordButton.Click(); - page.CalculatorResults.ContextMenuItemPasteClick(); + CalculatorApp.Window.SendKeys(Keys.Control + "v" + Keys.Control); Assert.AreEqual("Invalid input", page.CalculatorResults.GetCalculatorResultText()); } - - [TestMethod] - [Priority(1)] - public void Copy_And_Paste_Big_QWord_Number() - { - page.ProgrammerOperators.BitFlip.Click(); - page.ProgrammerOperators.Bit63.Click(); - page.CalculatorResults.ContextMenuItemCopyClick(); - page.ProgrammerOperators.FullKeypad.Click(); - page.StandardOperators.ClearEntryButton.Click(); - page.CalculatorResults.ContextMenuItemPasteClick(); - Assert.AreEqual("-9,223,372,036,854,775,808", page.CalculatorResults.GetCalculatorResultText()); - } - - [TestMethod] - [Priority(1)] - public void Copy_And_Paste_Big_DWord_Number() - { - page.ProgrammerOperators.QWordButton.Click(); - page.ProgrammerOperators.BitFlip.Click(); - page.ProgrammerOperators.Bit31.Click(); - page.CalculatorResults.ContextMenuItemCopyClick(); - page.ProgrammerOperators.FullKeypad.Click(); - page.StandardOperators.ClearEntryButton.Click(); - page.CalculatorResults.ContextMenuItemPasteClick(); - Assert.AreEqual("-2,147,483,648", page.CalculatorResults.GetCalculatorResultText()); - } - - [TestMethod] - [Priority(1)] - public void Copy_And_Paste_Big_Word_Number() - { - page.ProgrammerOperators.QWordButton.Click(); - page.ProgrammerOperators.DWordButton.Click(); - page.ProgrammerOperators.BitFlip.Click(); - page.ProgrammerOperators.Bit15.Click(); - page.CalculatorResults.ContextMenuItemCopyClick(); - page.ProgrammerOperators.FullKeypad.Click(); - page.StandardOperators.ClearEntryButton.Click(); - page.CalculatorResults.ContextMenuItemPasteClick(); - Assert.AreEqual("-32,768", page.CalculatorResults.GetCalculatorResultText()); - } - - [TestMethod] - [Priority(1)] - public void Copy_And_Paste_Big_Byte_Number() - { - page.ProgrammerOperators.QWordButton.Click(); - page.ProgrammerOperators.DWordButton.Click(); - page.ProgrammerOperators.WordButton.Click(); - page.ProgrammerOperators.BitFlip.Click(); - page.ProgrammerOperators.Bit7.Click(); - page.CalculatorResults.ContextMenuItemCopyClick(); - page.ProgrammerOperators.FullKeypad.Click(); - page.StandardOperators.ClearEntryButton.Click(); - page.CalculatorResults.ContextMenuItemPasteClick(); - Assert.AreEqual("-128", page.CalculatorResults.GetCalculatorResultText()); - } #endregion } }