Crawljax Changelog

What's new in Crawljax 3.6

Dec 12, 2014
  • The Web interface is migrated to AngularJS
  • Various bug fixes and improvements
  • All dependencies are updated

New in Crawljax 3.5.1 (Apr 5, 2014)

  • Updated Selenium to 2.41.0
  • Fixed stripped DOM method
  • Updated dependencies

New in Crawljax 3.5 (Mar 14, 2014)

  • Deprecated the malfunctioning DomChangeNotifierPlugin. Introuced StateVertexFactoryl. #347
  • Better PhantomJS support. Tests run on PhantomJS by default.
  • Switched from URL’s to URI’s for better performance.

New in Crawljax 3.4 (Mar 8, 2014)

  • Crawljax doesn’t accidentally go to other URLs anymore during a Crawl.
  • StateVertexImpl.getUsedEventables() Always returned an empty list
  • Fixed some Findbugs errors

New in Crawljax 3.3 (Sep 9, 2013)

  • support is added. You can now use PhantomJS as a driver in Crawljax. For details see #327
  • External URLs are not opened by default #328
  • Updated selenium.

New in Crawljax 3.2 (Jul 23, 2013)

  • Crawl configuration now has an option to set the output folder.
  • A crawl now also reports some statistics. These are also extendible. Checkout the example for details.
  • Browser.getDom() is deprecated. You can now choose between getStrippedDom and getUnstrippedDom().
  • Proxy plugin has been removed. It didn't work in 3.1 and 3.0 and is now replaced by the PreCrawlPlugin.

New in Crawljax 3.1 (Jun 12, 2013)

  • Added the possibility to stop Crawljax from using the runner or by calling stop from any plugin. #270
  • Fixes bug positioning of elements in the crawloverview #237
  • Fixed HashCode/Equals bug in Conditions #276
  • Fixes bug where edges would disappear from the StateFlowGraph #272
  • Updated to the new version of Selenium

New in Crawljax 3.0 (Jun 1, 2013)

  • New Overview plugin
  • Crawljax is now configured using a builder
  • Crawljax can now crawl hidden href elements as well.
  • Children of a certain elements can be excluded using a nice syntax.
  • The project has been split up in three versions: core, cli and examples.
  • Major performance and stability improvements

New in Crawljax 2.2 (Jan 17, 2013)

  • Switched to a new Logging framework for better log output.
  • The StateFlowGraph and other elements are now serializable.
  • More HTML elements are predefined for crawling. This can lead to a higher crawl coverage.

New in Crawljax 2.1 (Dec 18, 2012)

  • Changes and Bug fixes:
  • Mobilecrawl
  • independend tests
  • Improve test suite
  • Tests should not depend on external resources enhancement
  • XPathHelper.formatXPath(String xpath) doesn't handle axes. bug imported
  • State can be represented by multiple StateVertix objects bug imported

New in Crawljax 2.0 (Dec 18, 2012)

  • New features:
  • Support for concurrent multi-browser crawling. The number of browsers can be configured using the ThreadConfiguration API.
  • Support added for the HTMLUnit driver. Note: this driver is very fast, but it is not a real browser.
  • Added CrawlPathToException class to wrap a crawl path into a stack trace like exception giving developers / testers better insight to on which page an invariant or plugin reported an error.
  • Added a Filter option to Helper.getDifferences, so a list of differences can be generated without being bothered with the changes in style attributes for example.
  • Changes and Bug fixes:
  • Upgraded the dependencies on Selenium (version 2.0a7). Issue: 9.
  • The initial browser was null, this was caused by the fact that the currentBrowser was not correctly set. The browser pool did not register the currentBrowser for a given thread as the browser got requested directly, as what happened with the initial browser. Issue: 26.
  • When running a (large) CrawlSpec and set a MaxRuntime constraint for it, the Crawler is not terminated directly when the MaxRuntime is reached. Basically what happened was that the current Crawler was terminated. Afterwards all waiting Crawlers got executed and start back-tracking and when in the previous state the check constraints terminates the Crawler. It was changed to, when the MaxRuntime is reached the current Crawler was terminated and that Crawler made a call the all other Crawlers running to shutdown and it tells the queue to empty and shutdown. Issue: 27.
  • Ignore iFrames specified by full identifier or using wild-cards. Issue: 29.
  • When using one wait condition during crawling and the first waitcondition takes a long time (> timeout) but in the end it is successful a IndexOutOfBounceException is thrown. The index is increased after an successful execution of a waitcondition and later the log event uses the increased index number to retrieve the WaitCondition that took to long to get successful. Issue: 30.
  • When supplying wrong or malformed urllocator causes an exception. Changed the behaviour not to suspect an urllocator starts with 7 characters. Issue: 31.
  • The exactEventPath got updated when OnNewState plugins where finished executing. This resulted in the wrong data being exposed to the CrawlSession. The initial fix was made to prevent this behaviour, late the CrawlPath and the ExactEventPath where merged because both lists are doing exactly the same. Issue: 32.
  • Refactored most of the Exception handling within Crawljax, when a browser crashed (for whatever reason) the Exception thrown by WebDriver was catched and ignored. Resulting in all calls to WebDriver to fail and by that flushing all the work from the queue by Crawlers using that Browser. The new implementation handles the exception at the right location and makes sure the crashed browser will be removed from the pool and won’??t be used any further. The crawler where the browser crashed will be removed from the queue, limiting the number of missed states by the number that would have been found by that crawler. Issue: 33/34.
  • Fixed a lot of the FindBugs warnings, remove some legacy code (clone() support)
  • Updated the WebDriver version, this was needed to support screenshots for RemoteWebDrivers. It also enables screenshotting of WebDriver instances wrapping an other WebDriver by implementing the WrapsDriver class. This enabled screenshotting in EventFiringWebDriver classes.
  • Changed Crawljax Core so a CrossBrowser tool could be developed; therefore added an call to block the CrawljaxController (waitForTermination).
  • When having allot elements to examine prevent getXPathExpression get called over and over again. This was solved by caching the build of the XPathâ??s in the current DOM. Every node in the DOM contains the full xPath leading to it self, so preventing to calculate for example the /HMTL/BODY part over and over again. Only calculate the part which has not yet been calculated.
  • Rename BrowserFactory to BrowserPool which is a more correct name.

New in Crawljax 1.9 (Dec 18, 2012)

  • New features:
  • Support for iframe crawling. Works great in Firefox if iframes have unique IDs or NAME attributes.
  • Added support for Google Chrome 4.0. Works with versions lower than 5 currently (due to WebDriver issues).
  • OnFireEventFailed Plugins; enable an extension point when a fireEvent failed.
  • Fixed Bugs:
  • Fix a bug where underXPath would only work for XPaths that result in one element. Issue: 16.
  • Fix a bug where hashes, dots and spaces were not allowed in attribute values of clickables. Issue: 7.
  • Fix bug where wrong currentState was stored in in CrawlSession when OnInvariantViolation was called.
  • Make Crawljax work with Firefox 2.0. You also need a patched webdriver. (http://code.google.com/p/selenium/issues/detail?id=387)
  • Handle popups such as alert by always “clicking” OK. This is a workaround and doesn’t always work. Issue: 2.
  • Fix bug where Crawljax would write to / if the output directory was not set.
  • Changed CrawljaxConfiguration to CrawljaxConfigurationReader in CrawlSession Issue: 5.
  • runOnFireEventFailedPlugins failed in some cases, prevented from happening Issue: 8.
  • Changes:
  • Various improvements and polishments.
  • Extended Crawljax Exceptions with more information about the system used. This is helpful to debug problems. Issue: 9.
  • Upgrade WebDriver dependency to Selenium 2.0a2.
  • Rename oracle comparators. The names are more logical now.
  • Removed:
  • Hibernate (database) has been removed.
  • Properties file is no longer supported. Issue: 5.