My Blog List

Friday, May 1, 2015

Handling objects not visible on screen

Nowadays most of the web applications are built with different WEB 2.0 technologies and controls are loaded in different ways. While automating those pages, test developers normally will face the problems like;

Object not Visible
Not able to simulate the event on the object

If we debug the object, UFT's Exist or Selenium's elementPresent will return TRUE always but actually the control will not be in the screen. SO what is the deal here?

Let us discuss how developers are loading the controls.

1. Basically developers will use Style property to make a control visible on screen or to hide like;

control.Style.Display = "block" or "inline" or "" or "null"

But the control will be always available in the source XML structure and thus UFT's Exist will always returns TRUE.

2. Sometimes, the source XML itself not available in the code and dynamically they form the HTML structure using JQuery, JavaScript, etc. and display in the screen.
In this scenario, no need to worry as Exist itself will return FALSE as it is not in the source XML.

Here are some ways to handle the first scenario.
1. You can check using Style property
If obj.Exist(0) Then
  If oLink.Object.Style.Display <> Empty Then
     'your operations
  End If
End If

2. You can check using height as If the control is not presented in screen, it will not have height,
width, etc. values.
If obj.Exist(0) Then
  If oLink.Object.offsetHeight <> Empty Then
     'your operations
  End If
End If

1 comment:

  1. Thanks for sharing great information in your blog. Got to learn new things from your Blog . It was very nice blog to learn about Selenium