From b2f1193aa4fd03fce7dbbb8707eedc01a2a5dc99 Mon Sep 17 00:00:00 2001 From: thathi Date: Sun, 20 Sep 2020 17:09:01 +0100 Subject: [PATCH] [BUG] Grid Sort not working in UCI | No more 1 click sort #942 (#966) * Added Selenium.WebDriver.ChromeDriver and removed Selenium.Chrome.WebDriver * Updated UCI Grid Sort method to include a sort option button text * updated missing element reference * restore back to the original Selenium.Chrome.WebDriver * Revert "restore back to the original Selenium.Chrome.WebDriver" This reverts commit 31818b3259e52b9b882494c27d5f84a86e9bba1f. Co-authored-by: Thathi Pammi --- .../DTO/AppElementReference.cs | 2 +- Microsoft.Dynamics365.UIAutomation.Api.UCI/Elements/Grid.cs | 5 +++-- Microsoft.Dynamics365.UIAutomation.Api.UCI/WebClient.cs | 5 ++++- .../UCI/Controls/Grid.cs | 2 +- .../UCI/Read/OpenAccount.cs | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO/AppElementReference.cs b/Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO/AppElementReference.cs index e8f68bf4..51f38ee7 100644 --- a/Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO/AppElementReference.cs +++ b/Microsoft.Dynamics365.UIAutomation.Api.UCI/DTO/AppElementReference.cs @@ -371,7 +371,7 @@ public static class AppElements { "Grid_Rows" , "//div[contains(@role,'row')]"}, { "Grid_ChartSelector" , "//span[contains(@id,'ChartSelector')]"}, { "Grid_ChartViewList" , "//ul[contains(@role,'listbox')]"}, - { "Grid_SortColumn", "//div[@data-type='Grid']//div[@title='[COLNAME]']//div[@class='grid-header-text']"}, + { "Grid_SortColumn", "//div[@data-type='Grid']//div[@title='[COLNAME]']//div[contains(@class,'header')]"}, { "Grid_CellContainer" ,"//div[@role='grid'][@data-id='grid-cell-container']"}, { "Grid_ViewSelector" , "//span[contains(@id,'ViewSelector')]" }, { "Grid_ViewContainer" , "//ul[contains(@id,'ViewSelector')]" }, diff --git a/Microsoft.Dynamics365.UIAutomation.Api.UCI/Elements/Grid.cs b/Microsoft.Dynamics365.UIAutomation.Api.UCI/Elements/Grid.cs index aee0d737..992021ee 100644 --- a/Microsoft.Dynamics365.UIAutomation.Api.UCI/Elements/Grid.cs +++ b/Microsoft.Dynamics365.UIAutomation.Api.UCI/Elements/Grid.cs @@ -72,9 +72,10 @@ public List GetGridItems() /// Sorts the grid by the column provided /// /// Label of the column name - public void Sort(string columnName) + /// Sort option button text + public void Sort(string columnName, string sortOptionButtonText) { - _client.Sort(columnName); + _client.Sort(columnName, sortOptionButtonText); } } } \ No newline at end of file diff --git a/Microsoft.Dynamics365.UIAutomation.Api.UCI/WebClient.cs b/Microsoft.Dynamics365.UIAutomation.Api.UCI/WebClient.cs index 20e36390..101049aa 100644 --- a/Microsoft.Dynamics365.UIAutomation.Api.UCI/WebClient.cs +++ b/Microsoft.Dynamics365.UIAutomation.Api.UCI/WebClient.cs @@ -1778,7 +1778,7 @@ public BrowserCommandResult SwitchChart(string chartName, int thinkTime = }); } - public BrowserCommandResult Sort(string columnName, int thinkTime = Constants.DefaultThinkTime) + public BrowserCommandResult Sort(string columnName, string sortOptionButtonText, int thinkTime = Constants.DefaultThinkTime) { ThinkTime(thinkTime); @@ -1789,7 +1789,10 @@ public BrowserCommandResult Sort(string columnName, int thinkTime = Consta if (sortCol == null) throw new InvalidOperationException($"Column: {columnName} Does not exist"); else + { sortCol.Click(true); + driver.WaitUntilClickable(By.XPath($@"//button[@name='{sortOptionButtonText}']")).Click(true); + } driver.WaitForTransaction(); return true; diff --git a/Microsoft.Dynamics365.UIAutomation.Sample/UCI/Controls/Grid.cs b/Microsoft.Dynamics365.UIAutomation.Sample/UCI/Controls/Grid.cs index a83d3113..11199aca 100644 --- a/Microsoft.Dynamics365.UIAutomation.Sample/UCI/Controls/Grid.cs +++ b/Microsoft.Dynamics365.UIAutomation.Sample/UCI/Controls/Grid.cs @@ -23,7 +23,7 @@ public void UCIGridSort() xrmApp.Grid.SwitchView("Active Accounts"); - xrmApp.Grid.Sort("Main Phone"); + xrmApp.Grid.Sort("Main Phone", "Sort A to Z"); } } } diff --git a/Microsoft.Dynamics365.UIAutomation.Sample/UCI/Read/OpenAccount.cs b/Microsoft.Dynamics365.UIAutomation.Sample/UCI/Read/OpenAccount.cs index 7a2b0108..fd44dd57 100644 --- a/Microsoft.Dynamics365.UIAutomation.Sample/UCI/Read/OpenAccount.cs +++ b/Microsoft.Dynamics365.UIAutomation.Sample/UCI/Read/OpenAccount.cs @@ -57,7 +57,7 @@ public void UCITestGetActiveGridItems() xrmApp.Grid.GetGridItems(); - xrmApp.Grid.Sort("Account Name"); + xrmApp.Grid.Sort("Account Name", "Sort Z to A"); xrmApp.ThinkTime(3000); }