1.3 Release (August 6, 2014)

HTML5 Robot 1.3 can be downloaded from this location: http://html5robot.com/downloads/

This releases adds full Ext JS 5 support, and provides examples that run against the online Kitchen Sink and Executive Dashboard.

1.2 Release (February 21, 2014)

HTML5 Robot 1.2 can be downloaded from this location: http://html5robot.com/downloads/

The reason for this release is to upgrade the Chrome driver from version 2.1 to 2.9. This is because an automatic update made to Chrome in the last week causes Chrome to no longer work with the 2.1 chromedriver, and for tests using that driver to silently fail by timing out.

Testing running against 2.1 Chrome Driver were getting the following error:

Started ChromeDriver (v2.1) on port 15341
Unable to setup test.
org.openqa.selenium.WebDriverException: unknown error: unable to discover open pages
  (Driver info: chromedriver=2.1,platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 22.62 seconds
Build info: version: '2.33.0', revision: '4e90c97', time: '2013-05-22 15:32:56'
System info: os.name: 'Windows Server 2008 R2', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_25'
Driver info: org.openqa.selenium.remote.RemoteWebDriver

I retrieved the latest Chrome Driver from http://chromedriver.storage.googleapis.com/index.html, and updated all related IDE and example project settings to use the 2.9 chrome driver.

 

1.1 Release (November 23, 2013)

HTML5 Robot 1.1 can be downloaded from this location: http://html5robot.com/downloads/

Java Changes

  • XPathUtils.findExtJsFileFieldByDefault(): Returns the XPath for getting an Ext JS File field assuming there is only one in the page
  • XPathUtils.findExtJsFileFieldByDefaultInDiv(String divId): Returns the XPath for getting an Ext JS field field inside the the given assuming there is only one
  • XPathUtils.findExtJsFileFieldByOccurrence(int index): Returns the XPath for getting an Ext JS field field by its occurrence within the page
  • XPathUtils.findExtJsFileFieldByOccurrenceInDiv(int index, String divId): Returns the XPath for getting an Ext JS field field by its occurrence within the given div
  • XPathUtils.findInputByClass(String name): Returns the input that has the class of the given value
  • XPathUtils.findInputByClassInDiv(String name, String divId): Returns the XPath for the input that has the given class in the given div
  • XPathUtils.findButtonByClass(String name): Returns the XPath for the button of the given class
  • XPathUtils.findButtonByClassInDiv(String name, String divId): Returns the XPath for the button of the given class inside the given div
  • XPathUtils.findButtonByTextOccurrence(int index, String text): Generates the XPath for getting the button with the given text’s occurrence based on the given index. For example: I want the second occurrence of the button with the text of OK.
  • waitUntilElementDoesNotExist(WebDriver driver, By by, int waitSeconds, int retries) changed to waitUntilElementDoesNotExist(WebDriver driver, By by, int timeout), (works faster now) and made to attempt every second until the timeout is reached. The old logic waited every total timeout for 2 times, which was not needed and too long.
  • waitUntilElementExists(WebDriver driver, By by, int waitSeconds, int retries) changed to waitUntilElementExists(WebDriver driver, By by, int timeout), (works faster now) and made to attempt every second until the timeout is reached. The old logic waited every total timeout for 2 times, which was not needed and too long.
  • Form4TestBase now works for Firefox, Internet Explorer, and Chrome instead of just Chrome. You don’t need to use a file detector, just sendKeys to the file input element.

 

Gwen Changes

  • Browsers now expand to fill the screen when the test starts
  • Added web element type of extjsfilefield, which is used for interacting with the file input fields on pages used for upload
    • extjsfilefield by text “foo”, Gets the file field associated with the button with the text “foo”
    • extjsfilefield by text “bar//foo”, Gets the file field associated with the button with the text “foo” in the div “bar”
    • extjsfilefield by occurrence “2”, Gets the second occurring file field in the page
    • extjsfilefield by occurrence “bar//2”, Gets the second occurring file field within the “bar” div
    • extjsfilefield by default method, Gets the file field assuming there is only one
    • extjsfilefield by default “bar//”, Gets the file field in the “bar” div
    • You set the file like the following: type “C:\\some\\path\\file.txt” into extjsfilefield by occurrence “2”
  • Added the locator expression type of “by class” to the following web elements, which matches against the CSS class attribute value:
    • input by class “foo”, Gets the input with the CSS class attribute of “foo”
    • input by class “bar//foo”, Gets the input with the CSS class attribute of “foo” in the div of “bar”
    • button by class “foo”, Gets the button with the CSS class attribute of “foo”
    • button by class “bar//foo”, Gets the button with the CSS class attribute of “foo” in the div of “bar”
  • Added web element type of extjspanel which is used for interacting with Ext JS panels, particularly when they are collapsible in which you need to click on them.
    • extjspanel by text “Some Text”, Gets the Ext JS panel with the header text of “Some Text”
    • extjspanel by text “bar//Some Text”, Gets the Ext JS panel with the header text of “Some Text” in the div of “bar”
  • Added web element support to the button for “by occurrence“. This was done because there are a lot of cases when you are dealing with several buttons all with the same text in a single page.
    • button by occurrence “2//New”, Gets the second occurrence of the button with the text of “New”
  • wait until element gone, (works faster now) now waits for the max time specified in the timeout and runs checked every second instead of every default timeout unit of time for 2 times.
  • wait until element exists, (works faster now) now waits for the max time specified in the timeout and runs checked every second instead of every default timeout unit of time for 2 times.
  • type “path” into extjsfilefield by text “Bar” now works for Firefox, Internet Explorer, and Chrome instead of just Chrome