Hi. I am experiencing trouble with connecting to a frame element. Attached is a log with a comparison to the definition of the frame element. As you will see, the frame has a unique id so I would think that would be used to find the frame element. I did not have the UseQuery option checked, yet the log indicates that it is.
When I run this script "live", stopping execution just before connecting to the frame, and re-record, the first step inside the frame is recorded against the correct element inside the frame element. But if I just execute the script, it fails when attempting the first step inside the frame, as denoted in the log above.
Any help you can provide would be much appreciated! Thanks.
10 Answers, 1 is accepted
Thank you for the screenshot provided. I saw there that the frame has an ID that could be used to locate it during the execution of the test. I would suggest to remove the BaseUrl from the frame properties window shown on the screenshot, save the test and try to run it again.
I hope this would resolve the problem.
Thank you! That did the trick!
Though running "live", my script now connects successfully to the frame. But, when I run a test list refereing only this particular script, either locally or remotely, I get a similar error as before.
Attached you will see a pic from TestStudio of my frame element and a successful connection using the "NavDiv" element in the frame. On top is a log of a locally run test list and you will see that the frame find logic reverts to using a query. This also happens on a remotely run test list (I also deleted the mongo db on the remote server to ensure no old scripts). Where is it getting this find logic and why does it revert to this rather than simply using the frame id?
Any help would be much appreciated!
I've additionally tried adding a test studio tag to the iframe as explained here: http://docs.telerik.com/teststudio/advanced-topics/coded-samples/html/add-tag-to-iFrame.
The script runs interactively, running the test list locally now works(!) but running it remotely still fails at the same spot. An excerpt from the log is attached.
It seems from the execution log that the element that fails is located in a frame with unchanged url. This could be caused if the project files are not updated in the MongoDb data base and you are trying to execute them trough the scheduling server setup.
To update the data base content you could try to: follow the direction from this article, to create a new test list or to delete the testlists collection from the data base as described here.
I hope this would fix this problem.
As mentioned before I dropped the mongo db on the remote server prior to the issues I reported. So, this time, I again dropped the mongo db, scheduled my test for a remote run, updated the project files on the scheduled run as the reference instructs. The test executed. No joy.
I also created a new project with just this one test script. I tried a number of variations for the page element on matching on base url, relative path url, title name, etc. thinking possible the error starts there. Again, no joy.
Leaving that idea aside, in the test script, I have it first click on the intended frame (and it matches successfully just on ID). I then attempt to see if an element interior to the frame is enabled and it fails as usual (attempting to match, as the logs previously provided demonstrate, not on id but on src and use query = true).
At this point, I am giving up. We'll have to set the tests up to run locally (not an ideal situation) and separately from a number of composite test scripts.
I do appreciate your help though. Thanks very much.
Would you provide further information on:
- Which is the product version you are using. If it is not the latest available (2017.2.824) - you could download it from your Telerik account - Downloads section. Note that Run-Time version should be the same as the Test Studio one.There are fixes in that version related to frames that could resolve the problem as well.
- What is the scheduling setup configuration? Where are installed scheduling and related to it storage servers? This is important to understand since it is possible to have installed scheduling server on each machine but for the execution is important only the one configured and has an execution client connected to.
You could open a support thread if you want to share more information on the case - a sample test project that reproduces the problem, other related to the case information that should not be public or if necessary top set up a remote session to help resolving the problem.
I'm looking forward to hear from you.