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); }