7 * All the URI parsing logic have been abstracted in the `AbstractUriElement` class.
8 The `Link` class is now a child of `AbstractUriElement`.
9 * Added an `Image` class to crawl images and parse their `src` attribute,
10 and `selectImage`, `image`, `images` methods in the `Crawler` (the image version of the equivalent `link` methods).
15 * [BC BREAK] The default value for checkbox and radio inputs without a value attribute have changed
16 from '1' to 'on' to match the HTML specification.
17 * [BC BREAK] The typehints on the `Link`, `Form` and `FormField` classes have been changed from
18 `\DOMNode` to `DOMElement`. Using any other type of `DOMNode` was triggering fatal errors in previous
19 versions. Code extending these classes will need to update the typehints when overwriting these methods.
24 * `Crawler::addXmlContent()` removes the default document namespace again if it's an only namespace.
25 * added support for automatic discovery and explicit registration of document
26 namespaces for `Crawler::filterXPath()` and `Crawler::filter()`
27 * improved content type guessing in `Crawler::addContent()`
28 * [BC BREAK] `Crawler::addXmlContent()` no longer removes the default document
34 * added Crawler::html()
35 * [BC BREAK] Crawler::each() and Crawler::reduce() now return Crawler instances instead of DomElement instances
36 * added schema relative URL support to links
37 * added support for HTML5 'form' attribute
42 * added a way to set raw path to the file in FileFormField - necessary for
43 simulating HTTP requests
48 * added support for the HTTP PATCH method
49 * refactored the Form class internals to support multi-dimensional fields
50 (the public API is backward compatible)
51 * added a way to get parsing errors for Crawler::addHtmlContent() and
52 Crawler::addXmlContent() via libxml functions
53 * added support for submitting a form without a submit button