Skip to main content

Posts

Showing posts from 2009

HTML Parsing and Selenium

HTML parsing is always been a burning requirement with selenium. Though Selenium doesn’t have built in API which could do HTML parsing, given its high integrability it could be integrated with HTMP parser to achieve the same. I have experimented on HTML parsing using Jericho which is java library. To begin HTML parsing the only demand Jericho makes is about HTML Source and this could be obtained using Selenium API - getHtmlSource(). Herein I have listed functions which I have developed using Jericho - Count number of tables on a page – // Get Source object for HTML Tables. Source source = new Source(selenium.getHtmlSource()); List table = source.getAllElements(HTMLElementName.TABLE); Reporter.log("Number of Tables are: " +table.size()); ***Reporter is TestNG API*** Retrieve Table Data- // Retrieve table data from a specific table.Source tableSource = new Source(table.get(3).toString()); Reporter.log("Table data is:" +HTMLTableParser.getTableData(tableS

Retrieving dynanic HTML Objects from selenium

We often come across situations of dynamic html objects where in HTML id/name of a page is not constant and some time we don't even get to have any constant part if HTML identifier. Of late I came across a page which had lots of check boxes but no part oh HTML id/name was constant. To over come this we created custom functions for selenium using js evaluation capabilities of selenium. Function objectives are: ****** Retrieves all dropdown objects in a web page ****** Retrieves all multiline text box objects in a web page ****** Retrieves all radio button objects in a web page ****** Retrieves all check box objects in a web page ****** Retrieves all text box objects in a web page Depending on the availability of HTML id or name these functions would retrieve either HTML id or name. These methods are as following -

How selenium recorder compares with other tools?

I had chance to work on QTP and to sneak in to Test Complete in my Organization. I am bit depressed as to how irrationally QTP and Test Complete record web application and how much script one should tweak manually to make it compact. Let me cite example of Google Search for this. A selenium test for Google Search would be like this - selenium.open("http://www.google.com/"); selenium.type("q", "I love My Company"); selenium.click("btnG"); This certainly gives impression of app being opened, some thing being typed (though "q" might not be very clear here) and some button being clicked (again "bthG" is not very clear here) Same recorded test in QTP be as following - Browser("Google").Page("Google").WebEdit("q").Set "I Love My Company" Browser("Google").Page("Google").WebButton("google search").Click Google With Browser and Page objects embe