Forum Discussion

DIMWSH's avatar
DIMWSH
New Contributor
7 years ago

Testobject.Click doesnt always work

I'm testing a web application and I have a few actions on test objects that involve clicking a button or a link to navigate to a different page, or to click a radio button on a page. All of these test objects are mapped in the Name Mapping repository.

 

I'm using a modular framework for this project, and sometimes when I execute the click action on these test objects, TestComplete will show that it clicks the object on the screenshots, but the expected action of navigating to another page (or selecting a radio button) doesn't always happen. 

 

I've tried alternate measures of identifying these objects using TestObject.NativeWebObject.Find, and I'm still experiencing this problem. I changed some project properties to slow down test execution and the problem still occurs. 

 

Any suggestions for ensuring that an objects is clicked when it's specified in the scripts? I'd provide some scripts, but the issue really is just with a simple TestObject.Click. 

  • Without knowing more detail about the specifics of the objects, my best guess is that the "Click" action is being performed just fine but the object being clicked may not be ready to be clicked... It's present on screen but not enabled, or there's a background process that needs to finish, or something like that.  It has all the earmarks of a "timing" problem where the automation is running faster than the application can perform.  I'd start with adding logic to check the component in question to determine if it is ready to be clicked before executing the click.

  • tristaanogre's avatar
    tristaanogre
    Esteemed Contributor

    Without knowing more detail about the specifics of the objects, my best guess is that the "Click" action is being performed just fine but the object being clicked may not be ready to be clicked... It's present on screen but not enabled, or there's a background process that needs to finish, or something like that.  It has all the earmarks of a "timing" problem where the automation is running faster than the application can perform.  I'd start with adding logic to check the component in question to determine if it is ready to be clicked before executing the click.

    • DIMWSH's avatar
      DIMWSH
      New Contributor

       I'll give that a shot! Thanks

      • AlexKaras's avatar
        AlexKaras
        Champion Level 3

        Hi,

         

        Yes, I am completely with Robert - .Click() must work, otherwise this forum had to explode from complaints about not working tests. :) But, alas!, the nature of most modern web applications is that there are too many background actions done via scripting on the page and the page well may not respond until all those actions are done. If this is the case, you should find indicators that signal that the page and the given control are ready to interact with end-user and delay your screen actions (clicks, keys typing, drags, etc.) until the page and control are ready.

  • lbouchar's avatar
    lbouchar
    Occasional Contributor

    Yes I have the same problem.   One of my test involves search for a contact.  Then when I get the results, I click on the contact name and it should open the contact basic profile information.   But I have noticed that when I run my test and it happens that the first contact appearing on the list of contacts found has an hyperlink with more than one line, the click does not work on my test. 

     

    • tristaanogre's avatar
      tristaanogre
      Esteemed Contributor

      I've had the same issue... the problem is that, basically, a "Click" call with -1 for both the X and Y parameters clicks in the center of the component... which, on that example, is in a blank space and not actually on the link itself.  This is ESPECIALLY the case when I'm clicking the Cell and not the link itself.  What I did to solve this is actually to find the cell and then find the link object INSIDE the cell and click on that.  This makes sure that the link  is clicked and I'm not clicking the blank space in the middle of the cell.