Forum Discussion

mgormsen's avatar
mgormsen
Occasional Contributor
15 days ago
Solved

NameMapping issues after IF Object statement returns false?

I submit a ticket through support already, but has anyone else seen an issue in 15.72 and 15.73 where a web test will fail with an "Unable to find the following object when executing the Click command:" error immediately following an IF Object statement that returns false?

I am seeing this issue on two separate web test suites.

If I use debugging to pause the test on the failing line, then right-click and "Highlight on screen" then continue, the test will work. If I just pause, then continue it will still fail.

I moved that item above the IF Object statement and it works, but now the next one after the IF fails.

In this image, the green item fails when by the pink item, but works when I moved it above the IF. Now the pink one fails.

If I go back to 15.71, this does not happen.

  • The SmartBear tech has seen a few customers with this similar issue now and agrees this is likely a bug. They have escalated to the dev team and recommended I downgrade back to 15.71 until they can fix the issue.

  • mgormsen's avatar
    mgormsen
    Occasional Contributor

    The SmartBear tech has seen a few customers with this similar issue now and agrees this is likely a bug. They have escalated to the dev team and recommended I downgrade back to 15.71 until they can fix the issue.

  • scot1967's avatar
    scot1967
    Regular Contributor

    I guess I will jump in here too...  😉

    Could the app just be losing focus here causing a name mapping issue?  Could this be related to a TestComplete change in how the application processes focus in some edge cases?

    If I use debugging to pause the test on the failing line, then right-click and "Highlight on screen" then continue, the test will work. If I just pause, then continue it will still fail.

    Here the full error statement would be helpful to indicate which object it is looking for. 

    "Unable to find the following object when executing the Click command:" 

    I am curious about why you are using a DblClick on a radio button (Green Item).  Is it just to move focus? 

    • Double Clicks radiobuttonClaimantsex  (Green Item)
    • If an object ...NcciClassCode exists..
      • Click it
      • Press 'Down' then 'Enter' (A selection takes place)
    • Else
      • Delay 2000.
      • Scroll 'gendermale' into view. (Undefined?)
      • Click 'gendermale'.  (Pink Item)

     

    This bit is very confusing to me.  Here 'that' refers the pink item I think and it is being place just above or below the (Green Item).  So, you are completely changing where in the sequence 'gendermale' is clicked.

    I moved 'that' item above the IF Object statement and it works, but now the next one after the IF fails.

    In this image, the green item fails when by the pink item, but works when I moved it above the IF. Now the pink one fails.

    Another thing that makes me think this is a focus issue is that gendermale is being scrolled into view.  

    • mgormsen's avatar
      mgormsen
      Occasional Contributor

      Sorry, I don't get email notifications on replies, I will need to look into my settings.

      The scroll was just a left over step from when the test was recorded. It is actually disabled and should be deleted. The double click is not something normally in the test, I added that while troubleshooting, there is no specific reason it is a double-click, just what I happened to select when I added it to the test.

      The green and pink stuff I was talking about was a poor way to explain that the name mapping itself isn't the issue, it always happens to the very next step after the if statement returns false. If I move an item to before the if, that item will now work, but the next one after the if fails. If I take a step that is working while above the if and move it immediately after it, then that step is the one that fails now.


      I spent some time with the support tech last week and it seems to be related to the name mapping caching. If we put a refresh name mapping step after (and outside of) the if statement, the test will work fine. That shouldn't be needed though.

      They are seeing similar behaviors from other clients and are pretty sure this is a bug in the last two versions. They have escalated to the dev team to look into it and recommend downgrading to 15.71 if people are running into this issue in their tests.

  • rraghvani's avatar
    rraghvani
    Icon for Champion Level 3 rankChampion Level 3

    Was it working before upgrading TC?

    I don't understand what actions you are performing, and I don't understand this statement "In this image, the green item fails when by the pink item, but works when I moved it above the IF. Now the pink one fails."

    • mgormsen's avatar
      mgormsen
      Occasional Contributor

      Yes, it works fine in 15.71, but in 15.72 and 15.73 it fails. If I downgrade back to 15.71 the test works fine again.



      It is hard to describe I guess, but you see the If Object line in the screenshot? It is looking to see if an item exists on the screen. In this case it does not.

      When that If returns false, the very next step following the If statement will throw a name mapping failure message. 

      The name mapping itself is fine. If I disable that If statement, the test will complete fine. If I move the item that failed above the If statement, it will complete that step, but will now fail on the next step that is following the If statement.

      If I put a debugging pause on the step immediately following the If, then when the test pauses I right click on that step and choose "Highlight on screen" it will highlight and when I hit continue the test will complete fine. If I pause, but do not highlight the item, when I hit continue, the test will still fail like it does without the debugging pause.


      Hope that helps you understand what is happening.

      • rraghvani's avatar
        rraghvani
        Icon for Champion Level 3 rankChampion Level 3

        Out of curiosity, if you increase the Delay timeout from 2000 to 10000 (10 seconds), will that work?

        You need to ensure that FirstReportSubmit3 actually exists, before performing any actions. Also, your name mapping needs to be correctly defined for your object. 

        There's been a number of issues with TC v15.72, so it might not be relating to your keyword tests.