Making SilkTest Smart
I'm using SilkTest and we work on a Web product that has our own content plus some content from other parties. To that we also have many template changes to our Web pages and those can happen between builds or even during builds. So I've been trying to build an abstraction element to SilkTest so that we can sort of try to dynamically recognize elements even if those elements have changed from the last time window declarations were recorded. Otherwise, we would have to re-record window declarations many times which starts to reduce the efficiency of automated testing.
Obviously how you do this must depend much so on your site details. But I'm curious if others have done something similar and what you've done. I guess part of this is making SilkTest kind of smart so that you build in logic to try to 'recognize' parts of your application by certain things, even if the tags have changed. Have others done something like this?
Re: Making SilkTest Smart
Yes we have sort of. In our Web app we have a single ASP page that based on a series of questions, there can be more than a thousand pages that are generated. (And it grows as the app grows.) We first had to make sure the developers always used the ID tag in the generated code so we could find the items we were looking for. We know the ID of the items we needed to work with, but did not know where on the page it would be. IT could be nested several tables deep or on the main page. To find the controls we get all the children and all their children until we have every element from the page. We then do a search for the ID (which can not change) of the items we are looking for. Then the code executes that works with the elements.
This is not the fastest executing code. However, speed was not a big issue as it will run over night long after the testers have left for the day.