- Some minor connection enhancements #19
- Support flushing localstorage for domain #22
-
Fully resets our fork back to the unreleased version of upstream, plus adds PHP8.3 support. The majority of our changes are now present in upstream (either exactly, or in a slightly different / superseded form).
-
REMOVES our custom implementation for handling native javascript dialogs (2.7.0.2) in favour of tackling this with the built-in methods to acknowledge a JS dialog after it has fired. This will require changes to projects that were relying on our custom method to register a callback handler.
-
Bring in selected changes from upstream package to fix various minor bugs, new test requirements from the core mink driver testsuite, and PHP 8.2 support - see #16
-
Advertise supported php versions and run tests on php8.2
-
Switch from textalk/websocket to the more-maintained fork phrity/websocket.
- Bring in selected changes from upstream package to reintroduce CI & fix support for PHP 8.1. Note the change from urlencode to rawurlencode when setting cookies through the driver (I don't think we actually do this).
- Don't fake the timestamps on click events - resolves issues with javascript frameworks ignoring events due to incorrect timestamps.
- Update handling of ConnectionException to handle the change to how textalk/websocket provides the stream metadata since v1.5.0 - it no longer json-encodes the stream status in the exception message.
- Add debugging output to try and understand why we have started getting fatal
Trying to access array offset on value of type null
in some cases following a ConnectionException.
- Fix PHP8 deprecation warning as optional constructor args can't be before required ones
- [BREAKING] Rewrite how native dialogs (alert, prompt, confirm, beforeunload) are handled. You must now register a callback in advance to handle any dialog that the browser shows. If you do not explicitly handle the dialog, an UnexpectedJavascriptDialogException will be thrown. #4
- Fix change event not bubbling after input value set #3
- Test using zenika/alpine-chrome instead of custom build(s) (#155)
- Fix returned value of
isTextTypeInput
(#149) - Session reset should close non-main windows (#152, !178)
- Switch to phrity/websocket package - successor to textalk/websocket which is no longer maintained (#144, !167)
- Error handling for invalid form values (#140)
- Introduce code coverage in CI (!154, !160)
- Add
make
commands for development tasks (!159) - Fix event dispatch and input type handling for all HTML input types (#92, #95, #111, #139, !166)
- Remove broken StreamReadException & canDevToolsConnectionBeEstablished timeout/retry logic (!168)
- Fix tests leaving orphaned tabs in Chrome (!165)
- Don't fake event timestamps when clicking elements (!164)
- Improve setValue() validation for unexpected inputs (#143, !171)
- Remove
docker
tag from CI jobs (!172) - Refactor ChromeDriver::setValue (#125)
- Tests cover PHP versions 7.4 to 8.2 (!149)
- Fix variable syntax deprecations (!149)
- Fix headed mode in Chrome v111+ using HTTP PUT request method when opening a new tab per https://chromedevtools.github.io/devtools-protocol/ (!145, !146, !147)
- Use correct default values for domWaitTimeout and socketTimeout when unset (#133, !143)
- Throw DriverException if file to be uploaded is not found (#12, !128)
- ConnectionException / StreamReadException handling improvements (!133, #68, #99, #119)
- Test coverage for accented character value handling (#105)
- Fix for file upload handling (behat-chrome-extension#12, !128)
- Test improvements (#124, !129)
- Documentation improvements (!127)
- Coding standards fixes (!115, !132, !136)
- Cookie encoding bugfix (#86)
- Use upstream Mink test suite (#116)
- Tests cover PHP versions 7.4 to 8.1 (#108)
- Documentation improvements (!125)
- Coding standards fixes (!115)
- Improved support for Behat 1.8.x, fixes to CI (!93, #94, #104)
- Support obtaining event listeners for elements (!91)
- Correctly use configured DevTools connection URL (!90, #93)
- Re-throw dead connection exceptions (!88)
- Support
setValue()
on 'url' input types (!87) - Support clearing and retrieval of messages from
console.log
(!86, #97) - Support multiple file attachments (!83)
- Support non-HTML responses (!78)
- Updated Event dispatching for input change to add support for React components (!74)
- Full page and screen screenshot functionality (!72, !79)
- Improve exception message on Chrome error (!71)
- Handle experimental Page.navigatedWithinDocument (!70)
- Support
setValue()
on 'number' input types (!81) - Correct types for
printToPDF()
method (!68) - Add function handling for evaluated JS return values (!67, #67)
- PHP7.3 fixes and test coverage (!66)
- Add ext-json to requirements in composer.json (!64)
- Set Host header for compatibility with Chrome 66+ (!63)
- Non-strict comparison of radio button values (!62)
- Add method to retrieve all cookies (!61)
- Replace deprecated method to ignore SSL certificate errors (!60, #57)
- Remove
event.key
code to fix conflict with non-printable chars (!57)
- Fixed StreamReadException not being caught when browser fails to respond on stop
- Make DOM wait timeout configurable - Nikita Nefedov
- Dispatch javascript keyup/keydown on top of devtools Input.dispatchKeyEvent - Florent Ruard-Dumaine
- Improved click handling for elements with non-zero border radius - Carl Wiedemann
- Remove headless chrome check from
captureScreenshot()
- Eric Jenkins - Fixed handling of dialogs on click - Arturas Smorgun
- Improved error handling when chrome Connection cannot be established - Peter Rehm
- Fixed wrongful assumption that chrome has crashed when it was waiting for a long page load.
- Fix unicode preg_replace - PFlorent Ruard-Dumaine
- Documentation for socketTimeout option - Peter Rehm
- Reset document to document after visiting a new url - Peter Rehm
- Improved error handling when Chrome Connection can not be established and provided hints. - Peter Rehm
- Fixes undefined index 'value' for properties - Mark Nielsen
- Fix XPaths for SVGs - Mark Nielsen
- Resolve "Default socket timeout is inconsistent" - Sascha Grossenbacher
- Add click on radio element when selected - Peter Rehm
- Added support to capture screenshots and to render PDFs - Peter Rehm
- Socket timeout defaults now to 10 seconds - Matthew Hotchen
- Set pierce argument to TRUE if currently in an iframe - Sascha Grossenbacher
- Added verification if an element can be focused - Sascha Grossenbacher
- Fixed password fields not being focused before key presses
- Added option for overriding socket timeout - Matthew Hotchen
-
Fixed compatibility with Chrome 61 - Matthew Hotchen
-
PHP 7.2 compatibility - Peter Rehm
- Removed dependency on symfony/options-resolver:3 due to conflicts with Symfony2 projects
-
Added support for enabling certificate override Arturas Smorgun
-
Fixed numeric passwords being treated as integers
-
Fixed support for Chrome 62 - Peter Rehm
-
Implemented download behavior (Chrome 62+ only) - Peter Rehm
- Fixed 'Server sent invalid upgrade response' when switching windows, in some cases
-
Fixed getWindowNames incompatibility with Selenium2Driver
-
Fixed mouseover sometimes moving the mouse outside the element - Mark Nielsen
-
Fixed inability to switchToWindow for some tabs which were opened with window.open() - Mark Nielsen
-
Throw DriverException instead of \Exception - Mark Nielsen
-
Throw NoSuchFrameException instead of generic \Exception when the frame is removed after being switched to - Mark Nielsen
-
Fixed clicking on an option tag which is inside an optgroup - Mark Nielsen
-
Fixed isVisible when the element is hidden using negative offsets or 'visibility: hidden' - Mark Nielsen
-
Fixed NoSuchElement exception when textbox is removed by javascript onchange - Mark Nielsen
-
Fixed browser resizing - Mark Nielsen
-
Added support for setting the value of a input type="search" - Raphaël Droz
-
Added support for setting the value of an element with contenteditable=true - Mark Nielsen
-
Implemented isolation between multiple instances running against the same browser, if the browser is running with --headless
-
Fixed isVisible when an element only has children which are floating, fixed, or absolute
-
Fixed setValue on fields with limited length
-
Fixed getStatusCode and getResponseHeaders timing out when the page has been loaded before the websocket was opened
-
Fixed setValue for multibyte unicode
-
Fixed some elements not receiving click
-
Sped up animations and added sleep until they complete
-
Fixed timeout when page loading takes longer than 5 seconds
-
Fixed deadlock when a request fails
-
Fixed deadlock when chrome crashes
-
Fixed fields not showing autocomplete on setValue, due to unnecessary blur
-
Fixed fatal error when restarting without --headless
- Fixed compatibility with 5.6 and 7.0
-
Added support for switching to popups which chrome turned opened as tabs
-
Improved findElementXpaths to get the shortest xpath possible
-
Fixed xpath queries not always returning the elements in the correct order
-
Fixed setValue not always triggering keyup/keydown
-
Fixed popup blocker stopping popups triggered by click
-
Fixed deadlock when javascript prompt/alert is shown
-
Fixed double click not dispatching an event for the first click
-
Fixed double click not bubbling
-
Fixed page load timing out after 5 seconds
- Removed behat dependency
-
Fixed screenshot feature (thanks https://gitlab.com/OmarMoper)
-
Extracted behat extension to its own repository
- Fixed timeout when checking for the status code of a request served from cache
-
PHP 5.6 support
-
Fixed websocket timeout when visit() was not the first action after start() or reset()
- Licensed as MIT
-
Added support for basic http authentication
-
Added support for removing http-only cookies
-
Added support for file upload
-
Fixed getContent() returning htmldecoded text instead of the outer html as is
- Fixed back() and forward() timing out when the page is served from cache.