Skip to content

[BUG] Cannot login to Dynamics due issue in Login method #752

Description

@Shakevg

Bug Report

Login method fails due trying to click to not existing controls, but do not check that is is exists before

EasyRepro Version

  • Microsoft Dynamics 365 Online Version 8.2 (8.2.x) (DB 8.2.x) online
  • Microsoft Dynamics 365 Online Version 9.0 (9.0.x) (DB 9.0.x) online
  • Microsoft Dynamics 365 Online Version 9.0.2 (9.0.2) (DB 9.0.2) online
  • [ + ] Microsoft Dynamics 365 Online Version 9.1 (9.1.x) (DB 9.1.x) online

UCI or Classic Web

  • [ + ] UCI (XrmApp)
  • Classic Web (XrmBrowser)

Online or On Premise

  • [ + ] Online
  • On Premise

Browser

  • [ + ] Chrome
  • Firefox
  • IE
  • Edge

Describe the bug
During login test trying to click to not existing controls, but do not check that is is exists before

driver.ClickWhenAvailable(By.Id("aadTile"));
driver.ClickWhenAvailable(By.Id("use_another_account_link"));

Stack Trace:

Test method Microsoft.Dynamics365.UIAutomation.Sample.UCI.OpenContactUCI.UCITestOpenContactRetrieveHeaderValues threw exception: 
System.InvalidOperationException: Unable to click element.
    at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.<>c__DisplayClass50_0.<WaitUntilClickable>b__0() in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 500
   at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntil(ISearchContext driver, Func`2 searchFunc, Nullable`1 timeout, Action`1 successCallback, Action failureCallback) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 558
   at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntilClickable(ISearchContext driver, By by, Nullable`1 timeout, Action`1 successCallback, Action failureCallback) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 508
   at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.WaitUntilClickable(ISearchContext driver, By by, Nullable`1 timeout, Action`1 successCallback, String exceptionMessage) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 500
   at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.ClickWhenAvailable(ISearchContext driver, By by, Nullable`1 timeout, String errorMessage) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 38
   at Microsoft.Dynamics365.UIAutomation.Api.UCI.WebClient.Login(IWebDriver driver, Uri uri, SecureString username, SecureString password, SecureString mfaSecrectKey, Action`1 redirectAction) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Api.UCI\WebClient.cs:line 127
   at Microsoft.Dynamics365.UIAutomation.Browser.DelegateBrowserCommand`6.ExecuteCommand(IWebDriver driver, Object[] params) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Browser\DelegateBrowserCommand.cs:line 163
   at Microsoft.Dynamics365.UIAutomation.Browser.BrowserCommand`1.Execute[T1,T2,T3,T4,T5,T6,T7,T8,T9](IWebDriver driver, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Browser\BrowserCommand.cs:line 136
   at Microsoft.Dynamics365.UIAutomation.Browser.BrowserCommand`1.Execute[T1,T2,T3,T4,T5](IWebDriver driver, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Browser\BrowserCommand.cs:line 66
   at Microsoft.Dynamics365.UIAutomation.Browser.BrowserPage.Execute[TResult,T1,T2,T3,T4,T5](BrowserCommandOptions options, Func`7 delegate, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Browser\BrowserPage.cs:line 242
   at Microsoft.Dynamics365.UIAutomation.Api.UCI.WebClient.Login(Uri orgUri, SecureString username, SecureString password, SecureString mfaSecrectKey, Action`1 redirectAction) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Api.UCI\WebClient.cs:line 116
   at Microsoft.Dynamics365.UIAutomation.Api.UCI.OnlineLogin.Login(Uri orgUrl, SecureString username, SecureString password, SecureString mfaSecrectKey) in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Api.UCI\Elements\OnlineLogin.cs:line 38
   at Microsoft.Dynamics365.UIAutomation.Sample.UCI.OpenContactUCI.UCITestOpenContactRetrieveHeaderValues() in C:\BCD\EasyRepro-develop.747\Microsoft.Dynamics365.UIAutomation.Sample\UCI\Read\OpenContact.cs:line 150

Code to reproduce
Run UCITestOpenContactRetrieveHeaderValues test

xrmApp.OnlineLogin.Login(_xrmUri, _username, _password);

Expected behavior
It should be verification that controls exists before click

if (driver.IsVisible(By.Id("aadTile")))
	driver.ClickWhenAvailable(By.Id("aadTile"));
if (driver.IsVisible(By.Id("use_another_account_link")))
	driver.ClickWhenAvailable(By.Id("use_another_account_link"
```));

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions