ContributionsMost RecentMost LikesSolutionsRe: TestComplete having issues with ReactJS Applications Hi! We were using 14.7 when the company started shifting to react. At first wee did not care about the UI being "delayed" since they were not impacting the actions, but as more and more components got changed, and more and more pages were not updating the UI when being tested, it started breaking the functional flow itself. We have tried it as well in the latest version 15.X, tried running it different machines that has better specs and the results are the same, as long as it's a page that has shifted to reactJS, whenever dynamic page events would occur, the UI would not change. No, we did not change the flow but we did change all the identifiers to be able to point to the objects when the id's changed. We tried the same thing in selenium, and it worked there. :(. We also have a dirty workaround but I feel like TestComplete should be able to handle it. Our workaround is as follow: We find an object in the page that is already visible/interactable that triggers a dynamic event, it seems like page interactions that trigger dynamic events would trigger UI refresh but dynamic event triggered by backend would not (i.e our app is a chat app, if the other end sends a message, the message would not appear in the UI unless I click a button on the page that causes a panel to be visible triggering a UI change) TestComplete having issues with ReactJS Applications Hi, Our application under test recently moved to using React JS library. We started noticing that the UI that we see during execution was not updating correctly. When events would happen that would trigger UI changes, the UI changes did not reflect onto the browser, it did in the back end but not on the visible layer. Everything works well when done manually but when our automation scripts are running the UI fails to catch up. This has started to cause issues such as the script failing to click object that have not "reflected" yet in the UI. I was wondering if there are other users out there that has experienced the same thing and if you have found a workaround. The only change the application has gone through was switching to the ReactJS library and as more and more components of the application has switched, the more areas we see the issue. If this continues we might have to stop using TestComplete entirely for this application. I've attached a video, if you notice at the end the entire sub window collapses, that should have happened a few seconds ago from an action. This is what happens, after we stop the TestComplete execution and click on the browser all the delayed "actions/changes" would all happen and the UI adjusts itself to correction SolvedRe: Iterative call to handler in TestComplete Alright after trying out that fix which in theory should fix it up as it definitely would not allow recursive calls, the system popup still showed up. Something weird is definitely happening here. Here is the log when I'm not doing any handler on the event: Notice that there is only 1 instance of the warning. And no other warnings after it. But with the handler here is what's happening: It seems that the OnLogWarning event is being triggered repeatedly causing the handler to be repeatedly be called, though not by the handler itself.. since as the log shows bIsInHandler is False (that's what I'm logging)... And to make it even weirder, I modified the handler to just be this and it still triggered the system pop up. Based on the original log there should just be 1 warning, so only 1 trigger of the event, unless the event itself is causing another event which seems to be the case... bIsInHandler = False set SuppressedWarnings = CreateObject("System.Collections.ArrayList") SuppressedWarnings.Add "Ambiguous browser recognition." Sub Warning_Suppress(Sender, LogParams) Log.Message(bIsInHandler) If (bIsInHandler) Then Exit Sub Else bIsInHandler = True End If 'if SuppressedWarnings.Contains(LogParams.MessageText) then ' LogParams.Locked = True 'Log.Message("Suppressed warning: " + LogParams.MessageText) 'Log.Error("TEST") 'end if 'bIsInHandler = False End Sub Re: Iterative call to handler in TestComplete Hi! We are using two browsers but the namemapping is still under one browser. We do Aliases.browser where the identifier for browser is just the Object Type. It's not that great in terms of performance but it gets the job done for now. I'll try out this flag for in Handler and see if I still get the system pop up. Thanks! Iterative call to handler in TestComplete Hi! We use TestComplete to test multiple browsers all at the same time. RTC applications (which we have) require us to have 2 or more actors/users active during the test. This leads to us encountering "Ambiguous Browser Recognition" warnings during runtime. To make logs cleaner I attempted to make an OnLogWarning Event handler that checks if the message is "Ambiguous Browser Recognition" and if it is, don't log it. It seems to work fine but sometimes TestComplete throws a popup saying that iterative calls were being made to the handler. Which doesn't make sense since I'm not calling Log.Warning on my handler which was suggested in the info page for the OnLogWarning event. Here's my handler: set SuppressedWarnings = CreateObject("System.Collections.ArrayList") SuppressedWarnings.Add "Ambiguous browser recognition." Sub Warning_Suppress(Sender, LogParams) if SuppressedWarnings.Contains(LogParams.MessageText) then LogParams.Locked = True Log.Message("Suppressed warning: " + LogParams.MessageText) end if End Sub I really want to clean up the logs and remove these warnings, is there an easier way to do this? Or if someone can tell me why my handler would do an iterative call that would be great. Execution Plan causes freeze/not responding Hi, Anyone else experiencing difficulty switching to the Execution Plan tab? We're triggering execution runs manually sometimes which means we have to work in the Execution Plan window. I noticed that after an execution, when I want to go back to the Execution Plan the system freezes but goes back after a few minutes. It's not happening when we're just scripting so it might be related to the fact that I just did an execution. What are the possible causes of the poor performance of the Execution Plan tab/window? Re: Running in RDP - Chrome/Edge Chromium not performing actions I actually had some time this morning to debug this further. It seem TestComplete thinks the controls are a little bit higher in the page. When I added some click actions, I could see the cursor moving and I guess clicking things though that is not where the controls actually are. I opened a ticket with SmartBear and it seems the issue might be because of the machine resources preventing Chrome/Edge from performing the Front End stuff basically the browser is in a frozen state. I did try reducing the open applications on the running machine and it seems to have solved it. I'm just worried now that the resource requirement for our tests to work seem to be higher than before, or possibly TestComplete might be consuming more. Running in RDP - Chrome/Edge Chromium not performing actions Hi, I've noticed that the UI does not update on some of our test cases even though the test script says that it should do something. For example the following KWT should type in a message and hit send: This KWT is called multiple times in testing of our chat application. When I was watching the execution I noticed that the Chrome/Edge window (in the video I will attach it is Edge) seem to be frozen, like the actions were not being done but for some weird reason the results of those actions are still being seen by the 2nd participant in the chat (opened in Firefox). See attached video for clarity. Notice that in the middle part of the video, the application actually updated I think it was when the click to the Vehicle Info tab was done. I've seen this happen multiple times in various machines and I let it be because it did not seem like it was breaking things. But then one of our machines started this behavior: So the test logs were saying that "Send" button was clicked but it was not as indicated by the compounded messages. Expected would be similar to what was in the video. And now this actually causes the test cases to fail because our application only enables certain controls once a message is sent. And in this case those messages that were supposed to get sent did not get in. I only see this happening on Chrome/Edge Chromium. I'm wondering if the Smartbear Extension could be broken for when executing test cases with multiple browsers open. It is working correctly on my local and on some of our other Run Agents as well. I've tried it both for the latest TestComplete version and the one before that 14.6X. I hope someone can shine a light on what's happening and how I can fix/do a workaround. SolvedRe: How Aliases.browser.Terminate works That works on the testing side but I don't think I can sleep at night knowing our app can reach that state🤣 I also noticed that the issue is not happening on our Staging environment so I really want to be able to replicate the issue manually. Is there a manual way of "imitating" Terminate? How Aliases.browser.Terminate works We're using Aliases.browser.Terminate to close the browser and noticed that with Chrome we were starting to see a broken cookie from our application. I know that is because of our application and not TestComplete but the problem now is I can't seem to replicate the issue manually. I've isolated and pinpointed the difference to be the .Terminate command in TestComplete. Flow: Launch our site in Chrome Login with User1 Logout [Close Browser] Launch our side in Chrome Login with User1 Logout Login with User2 >FAIL So when CloseBrowser is done by ALT+F4 or by Page.Close the test case passes but if CloseBrowser is done with Aliases.browser.Terminate the test case fails and the cookie shows up. I've tried replicating it manually using taskkill but it still worked. Question now is how does Aliases.browser.Terminate work in the back-end / Manual version of things? Solved