Bug 1707290 [wpt PR 28671] - Auto-expand details elements for find-in-page, a=testonly
[gecko.git] / testing / geckodriver / CHANGES.md
blob2f37a8f3ac14fda46c0c84c06a9931975f729784
1 Change log
2 ==========
4 All notable changes to this program are documented in this file.
6 0.29.1  (2021-04-09), `970ef713fe58`)
7 -------------------------------------
9 ### Known problems
11 - _macOS 10.15 (Catalina):_
13   Due to the requirement from Apple that all programs must be
14   notarized, geckodriver will not work on Catalina if you manually
15   download it through another notarized program, such as Firefox.
17   Whilst we are working on a repackaging fix for this problem, you can
18   find more details on how to work around this issue in the [macOS
19   notarization] section of the documentation.
21 - _Android:_
23   Marionette will only be enabled in GeckoView based applications when the
24   Firefox preference `devtools.debugger.remote-enabled` is set to `True` via
25   [`moz:firefoxOptions`]. This will be fixed in the Firefox 90 release for
26   Android.
28 ### Added
30 - When testing GeckoView based applications on Android it's now enough to
31   specify the `androidPackage` capability. The appropriate activity name,
32   and required intent arguments will now automatically be used for
33   applications released by Mozilla.
35 - Native AArch64 (M1) builds of geckodriver for MacOS are now available. These
36   are currently shipped as Tier2 due to missing test infrastructure. Please let
37   us know if you experience issues.
39 ### Fixed
41 - Fixed a stack overflow crash in thread 'webdriver dispatcher' when
42   handling certain device errors.
44 - Fixed an application crash due to missing permissions on unrooted devices
45   by changing the location of the test related files, e.g the profile folder.
46   Therefore the deprecated --android-storage command line argument
47   now defaults to the `sdcard` option, which changed its location to
48   `$EXTERNAL_STORAGE/Android/data/%androidPackage%/files/`. With this change
49   proper support for unrooted devices running Android 10+ has been added.
51   _Note_: Do not use the --android-storage command line argument
52   anymore unless there is a strong reason. It will be removed in a future
53   release.
56 0.29.0  (2021-01-14, `cf6956a5ec8e`)
57 ------------------------------------
59 ### Known problems
61 - _macOS 10.15 (Catalina):_
63   Due to the requirement from Apple that all programs must be
64   notarized, geckodriver will not work on Catalina if you manually
65   download it through another notarized program, such as Firefox.
67   Whilst we are working on a repackaging fix for this problem, you can
68   find more details on how to work around this issue in the [macOS
69   notarization] section of the documentation.
71 - _Android:_
73   Marionette will only be enabled in GeckoView based applications when the
74   Firefox preference `devtools.debugger.remote-enabled` is set to `True` via
75   [`moz:firefoxOptions`]. This will be fixed in one of the upcoming Firefox
76   for Android releases.
78   In some cases geckodriver could crash due to a stack overflow when handling
79   certain device errors.
81   On unrooted Android 10+ devices startup crashes of the application can be
82   experienced due to an inappropriate location of test related files, e.g the
83   profile folder.
85 ### Added
87 - Introduced the new boolean capability `moz:debuggerAddress` that can be used
88   to opt-in to the experimental Chrome DevTools Protocol (CDP) implementation.
89   A string capability with the same name will be returned by [`NewSession`],
90   which contains the `host:port` combination of the HTTP server that can be
91   used to query for websockets of available targets.
93   Note: For this experimental feature the site-isolation support of
94   Firefox aka [Fission] will be not available.
96 0.28.0  (2020-11-03, `c00d2b6acd3f`)
97 ------------------------------------
99 ### Known problems
101 - _macOS 10.15 (Catalina):_
103   Due to the requirement from Apple that all programs must be
104   notarized, geckodriver will not work on Catalina if you manually
105   download it through another notarized program, such as Firefox.
107   Whilst we are working on a repackaging fix for this problem, you can
108   find more details on how to work around this issue in the [macOS
109   notarization] section of the documentation.
111 - _Android:_
113   Marionette will only be enabled in GeckoView based applications when the
114   Firefox preference `devtools.debugger.remote-enabled` is set to `True` via
115   [`moz:firefoxOptions`]. This will be fixed in one of the upcoming Firefox
116   for Android releases.
118   In some cases geckodriver could crash due to a stack overflow when handling
119   certain device errors.
121   On unrooted Android 10+ devices startup crashes of the application can be
122   experienced due to an inappropriate location of test related files, e.g the
123   profile folder.
125 ### Added
127 - The command line flag `--android-storage` has been added, to allow geckodriver
128   to also control Firefox on root-less Android devices.
129   See the [documentation][Flags] for available values.
131 ### Fixed
133 - Firefox can be started again via a shell script that is located outside of the
134   Firefox directory on Linux.
136 - If Firefox cannot be started by geckodriver the real underlying error message is
137   now being reported.
139 - Version numbers for minor and extended support releases of Firefox are now parsed correctly.
141 ### Removed
143 - Since Firefox 72 extension commands for finding an element’s anonymous children
144   and querying its attributes are no longer needed, and have been removed.
146 0.27.0  (2020-07-27, `7b8c4f32cdde`)
147 ------------------------------------
149 ### Security Fixes
151 - CVE-2020-15660
153   - Added additional checks on the `Content-Type` header for `POST`
154     requests to disallow `application/x-www-form-urlencoded`,
155     `multipart/form-data` and `text/plain`.
157   - Added checking of the `Origin` header for `POST` requests.
159   - The version number of Firefox is now checked when establishing a session.
161 ### Known problems
163 - _macOS 10.15 (Catalina):_
165   Due to the requirement from Apple that all programs must be
166   notarized, geckodriver will not work on Catalina if you manually
167   download it through another notarized program, such as Firefox.
169   Whilst we are working on a repackaging fix for this problem, you can
170   find more details on how to work around this issue in the [macOS
171   notarization] section of the documentation.
173 - _Android:_
175   Marionette will only be enabled in GeckoView based applications when the
176   Firefox preference `devtools.debugger.remote-enabled` is set to `True` via
177   [`moz:firefoxOptions`]. This will be fixed in one of the upcoming Firefox
178   for Android releases.
180   In some cases geckodriver could crash due to a stack overflow when handling
181   certain device errors.
183 ### Added
185 - To set environment variables for the launched Firefox for Android,
186   it is now possible to add an `env` object on [`moz:firefoxOptions`]
187   (note: this is not supported for Firefox Desktop)
189 - Support for print-to-PDF
191   The newly standardised WebDriver [Print] endpoint provides a way to
192   render pages to a paginated PDF representation. This endpoint is
193   supported by geckodriver when using Firefox version ≥78.
195 - Support for same-site cookies
197   Cookies can now be set with a `same-site` parameter, and the value
198   of that parameter will be returned when cookies are
199   retrieved. Requires Firefox version ≥79. Thanks to [Peter Major] for
200   the patch.
202 ### Fixed
204 - _Android:_
206   * Firefox running on Android devices can now be controlled from a Windows host.
208   * Setups with multiple connected Android devices are now supported.
210   * Improved cleanup of configuration files. This prevents crashes if
211     the application is started manually after launching it through
212     geckodriver.
214 - Windows and Linux binaries are again statically linked.
216 0.26.0  (2019-10-12, `e9783a644016'`)
217 -------------------------------------
219 Note that with this release the minimum recommended Firefox version
220 has changed to Firefox ≥60.
222 ### Known problems
224 - _macOS 10.15 (Catalina):_
226   Due to the recent requirement from Apple that all programs must
227   be notarized, geckodriver will not work on Catalina if you manually
228   download it through another notarized program, such as Firefox.
230   Whilst we are working on a repackaging fix for this problem, you
231   can find more details on how to work around this issue in the
232   [macOS notarization] section of the documentation.
234 - _Windows:_
236   You must still have the [Microsoft Visual Studio redistributable
237   runtime] installed on your system for the binary to run.  This
238   is a known bug which we weren't able fix for this release.
240 - _Android:_
242   Marionette will only be enabled in GeckoView based applications when the
243   Firefox preference `devtools.debugger.remote-enabled` is set to `True` via
244   [`moz:firefoxOptions`]. This will be fixed in one of the upcoming Firefox
245   for Android releases.
247   In some cases geckodriver could crash due to a stack overflow when handling
248   certain device errors.
250 ### Added
252 - Support for Firefox on Android
254   Starting with this release geckodriver is able to connect to
255   Firefox on Android systems, and to control packages based on
256   [GeckoView].
258   Support for Android works by the geckodriver process running on
259   a host system and Firefox running within either an emulator or
260   on a physical device connected to the host system.  This requires
261   you to first [enable remote debugging on the Android device].
263   The WebDriver client must set the [`platformName` capability] to
264   "`android`" and the `androidPackage` capability within
265   [`moz:firefoxOptions`] to the Android package name of the Firefox
266   application.
268   The full list of new capabilities specific to Android, instructions
269   how to use them, and examples can be found in the [`moz:firefoxOptions`]
270   documentation on MDN.
272   When the session is created, the `platformName` capability will
273   return "`android`" instead of reporting the platform of the host
274   system.
276 ### Changed
278 - Continued Marionette refactoring changes
280   0.25.0 came with a series of internal changes for how geckodriver
281   communicates with Firefox over the Marionette protocol.  This
282   release contains the second half of the refactoring work.
284 ### Fixed
286 - Connection attempts to Firefox made more reliable
288   geckodriver now waits for the Marionette handshake before assuming
289   the session has been established.  This should improve reliability
290   in creating new WebDriver sessions.
292 - Corrected error codes used during session creation
294   When a new session was being configured with invalid input data,
295   the error codes returned was not always consistent.  Attempting
296   to start a session with a malformed capabilities configuration
297   will now return the [`invalid argument`] error consistently.
300 0.25.0 (2019-09-09, `bdb64cf16b68`)
301 -----------------------------------
303 __Note to Windows users!__
304 With this release you must have the [Microsoft Visual Studio redistributable runtime]
305 installed on your system for the binary to run.
306 This is a [known bug](https://github.com/mozilla/geckodriver/issues/1617)
307 with this particular release that we intend to release a fix for soon.
309 ### Added
311 - Added support for HTTP `HEAD` requests to the HTTPD
313   geckodriver now responds correctly to HTTP `HEAD` requests,
314   which can be used for probing whether it supports a particular API.
316   Thanks to [Bastien Orivel] for this patch.
318 - Added support for searching for Nightly’s default path on macOS
320   If the location of the Firefox binary is not given, geckodriver
321   will from now also look for the location of Firefox Nightly in
322   the default locations.  The ordered list of search paths on macOS
323   is as follows:
325     1. `/Applications/Firefox.app/Contents/MacOS/firefox-bin`
326     2. `$HOME/Applications/Firefox.app/Contents/MacOS/firefox-bin`
327     3. `/Applications/Firefox Nightly.app/Contents/MacOS/firefox-bin`
328     4. `$HOME/Applications/Firefox Nightly.app/Contents/MacOS/firefox-bin`
330   Thanks to [Kriti Singh] for this patch.
332 - Support for application bundle paths on macOS
334   It is now possible to pass an application bundle path, such as
335   `/Applications/Firefox.app` as argument to the `binary` field in
336   [`moz:firefoxOptions`].  This will be automatically resolved to
337   the absolute path of the binary when Firefox is started.
339   Thanks to [Nupur Baghel] for this patch.
341 - macOS and Windows builds are signed
343   With this release of geckodriver, executables for macOS and Windows
344   are signed using the same certificate key as Firefox.  This should
345   help in cases where geckodriver previously got misidentified as
346   a virus by antivirus software.
348 ### Removed
350 - Dropped support for legacy Selenium web element references
352   The legacy way of serialising web elements, using `{"ELEMENT": <UUID>}`,
353   has been removed in this release.  This may break older Selenium
354   clients and clients which are otherwise not compatible with the
355   WebDriver standard.
357   Thanks to [Shivam Singhal] for this patch.
359 - Removed `--webdriver-port` command-line option
361   `--webdriver-port <PORT>` was an undocumented alias for `--port`,
362   initially used for backwards compatibility with clients
363   prior to Selenium 3.0.0.
365 ### Changed
367 - Refactored Marionette serialisation
369   Much of geckodriver’s internal plumbing for serialising WebDriver
370   requests to Marionette messages has been refactored to decrease
371   the amount of manual lifting.
373   This work should have no visible side-effects for users.
375   Thanks to [Nupur Baghel] for working on this throughout her
376   Outreachy internship at Mozilla.
378 - Improved error messages for incorrect command-line usage
380 ### Fixed
382 - Errors related to incorrect command-line usage no longer hidden
384   By mistake, earlier versions of geckodriver failed to print incorrect
385   flag use.  With this release problems are again written to stderr.
387 - Search system path for Firefox binary on BSDs
389   geckodriver would previously only search the system path for the
390   `firefox` binary on Linux.  Now it supports different BSD flavours
391   as well.
394 0.24.0 (2019-01-28, `917474f3473e`)
395 -----------------------------------
397 ### Added
399 - Introduces `strictFileInteractability` capability
401   The new capability indicates if strict interactability checks
402   should be applied to `<input type=file>` elements.  As strict
403   interactability checks are off by default, there is a change
404   in behaviour when using [Element Send Keys] with hidden file
405   upload controls.
407 - Added new endpoint `GET /session/{session id}/moz/screenshot/full`
408   for taking full document screenshots, thanks to Greg Fraley.
410 - Added new `--marionette-host <hostname>` flag for binding to a
411   particular interface/IP layer on the system.
413 - Added new endpoint `POST /session/{session_id}/window/new`
414   for the [New Window] command to create a new top-level browsing
415   context, which can be either a window or a tab. The first version
416   of Firefox supporting this command is Firefox 66.0.
418 - When using the preference `devtools.console.stdout.content` set to
419   `true` logging of console API calls like `info()`, `warn()`, and
420   `error()` can be routed to stdout.
422 - geckodriver now sets the `app.update.disabledForTesting` preference
423   to prevent Firefox >= 65 from automatically updating whilst under
424   automation.
426 ### Removed
428 - ARMv7 HF builds have been discontinued
430   We [announced](https://lists.mozilla.org/pipermail/tools-marionette/2018-September/000035.html)
431   back in September 2018 that we would stop building for ARM,
432   but builds can be self-serviced by building from source.
434   To cross-compile from another host system, you can use this command:
436         % cargo build --target armv7-unknown-linux-gnueabihf
438 ### Changed
440 - Allow file uploads to hidden `<input type=file>` elements
442   Through a series of changes to the WebDriver specification,
443   geckodriver is now aligned with chromedriver’s behaviour that
444   allows interaction with hidden `<input type=file>` elements.
446   This allows WebDriver to be used with various popular web
447   frameworks that—through indirection—hides the file upload control
448   and invokes it through other means.
450 - Allow use of an indefinite script timeout for the [Set Timeouts]
451   command, thanks to reimu.
453 ### Fixed
455 - Corrected `Content-Type` of response header to `utf-8` to fix
456   an HTTP/1.1 compatibility bug.
458 - Relaxed the deserialization of timeouts parameters to allow unknown
459   fields for the [Set Timeouts] command.
461 - Fixed a regression in the [Take Element Screenshot] to not screenshot
462   the viewport, but the requested element.
465 0.23.0 (2018-10-03)
466 -------------------
468 This release contains a number of fixes for regressions introduced
469 in 0.22.0, where we shipped a significant refactoring to the way
470 geckodriver internally dealt with JSON serialisation.
472 ### Removed
474 - The POST `/session/{session id}/element/{element id}/tap` endpoint
475   was removed, thanks to Kerem Kat.
477 ### Changed
479 - [webdriver crate] upgraded to 0.38.0.
481 ### Fixed
483 - `desiredCapabilities` and `requiredCapabilities` are again
484   recognised on session creation
486   A regression in 0.22.0 caused geckodriver to recognise `desired`
487   and `required` instead of the correct `desiredCapabilities`
488   and `requiredCapabilities`.  This will have caused significant
489   problems for users who relied on this legacy Selenium-style
490   session creation pattern.
492   Do however note that support for Selenium-styled new session
493   requests is temporary and that this will be removed sometime
494   before the 1.0 release.
496 - `duration` field made optional on pause actions
498   A regression in 0.22.0 caused the pause action primitive to
499   require a `duration` field.  This has now been fixed so that
500   pauses in action chains can be achieved with the default duration.
502 - Log level formatted to expected Marionette input
504   A regression in 0.22.0 caused the log level to be improperly
505   formatted when using Firefox pre-releases.  This is now fixed so
506   that the requested log level is correctly interpreted by Marionette.
508 - `temporary` field on addon installation made optional
510   A regression in 0.22.0 caused the `temporary` field for POST
511   `/session/{session id}/moz/addon/install` to be mandatory.  This has
512   now been fixed so that an addon is installed permanently by default.
514 - SHA1s in version information uses limited number of characters
516   The SHA1 used in `--version` when building geckodriver from a
517   git repository is now limited to 12 characters, as it is when
518   building from an hg checkout.  This ensures reproducible builds.
521 0.22.0 (2018-09-15)
522 -------------------
524 This release marks an important milestone on the path towards
525 a stable release of geckodriver.  Large portions of geckodriver
526 and the [webdriver] library it is based on has been refactored to
527 accommodate using [serde] for JSON serialization.
529 We have also made great strides to improving [WebDriver conformance],
530 to the extent that geckodriver is now _almost_ entirely conforming
531 to the standard.
533 ### Added
535 - Support for WebDriver web element-, web frame-, and web window
536   identifiers from Firefox.
538 - Added support for the non-configurable `setWindowRect` capability
539   from WebDriver.
541   This capability informs whether the attached browser supports
542   manipulating the window dimensions and position.
544 - A new extension capability `moz:geckodriverVersion` is returned
545   upon session creation.
547 ### Changed
549 - All JSON serialization and deserialisation has moved from
550   rustc_serialize to [serde].
552 - The HTTP status codes used for [script timeout] and [timeout]
553   errors has changed from Request Timeout (408) to Internal Server
554   Error (500) in order to not break HTTP/1.1 `Keep-Alive` support,
555   as HTTP clients interpret the old status code to mean they should
556   duplicate the request.
558 - The HTTP/1.1 `Keep-Alive` timeout for persistent connections  has
559   been increased to 90 seconds.
561 - An [invalid session ID] error is now returned when there is no
562   active session.
564 - An [invalid argument] error is now returned when [Add Cookie]
565   is given invalid parameters.
567 - The handshake when geckodriver connects to Marionette has been
568   hardened by killing the Firefox process if it fails.
570 - The handshake read timeout has been reduced to 10 seconds instead
571   of waiting forever.
573 - The HTTP server geckodriver uses, [hyper], has been upgraded to
574   version 0.12, thanks to [Bastien Orivel].
576 - geckodriver version number is no longer logged on startup, as
577   the log level is not configured until a session is created.
579   The version number is available through `--version`, and now
580   also through a new `moz:geckodriverVersion` field in the matched
581   capabilities.
583 - [webdriver crate] upgraded to 0.37.0.
585 ### Fixed
587 - Parsing [timeout object] values has been made WebDriver conforming,
588   by allowing floats as input.
590 - Implicit downloads of OpenH264 and Widevine plugins has been disabled.
592 - The commit hash and date displayed when invoking `--version`
593   is now well-formatted when built from an hg repository, thanks to
594   [Jeremy Lempereur].
596 - Many documentation improvements, now published on
597   https://firefox-source-docs.mozilla.org/testing/geckodriver/.
600 0.21.0 (2018-06-15)
601 -------------------
603 Note that with this release of geckodriver the minimum recommended
604 Firefox and Selenium versions have changed:
606   - Firefox 57 (and greater)
607   - Selenium 3.11 (and greater)
609 ### Added
611 - Support for the chrome element identifier from Firefox.
613 - The `unhandledPromptBehavior` capability now accepts `accept and
614   notify`, `dismiss and notify`, and `ignore` options.
616   Note that the unhandled prompt handler is not fully supported in
617   Firefox at the time of writing.
619 ### Changed
621 - Firefox will now be started with the `-foreground` and `-no-remote`
622   flags if they have not already been specified by the user in
623   [`moz:firefoxOptions`].
625   `-foreground` will ensure the application window gets focus when
626   Firefox is started, and `-no-remote` will prevent remote commands
627   to this instance of Firefox and also ensure we always start a new
628   instance.
630 - WebDriver commands that do not have a return value now correctly
631   return `{value: null}` instead of an empty dictionary.
633 - The HTTP server now accepts `Keep-Alive` connections.
635 - Firefox remote protocol command mappings updated.
637   All Marionette commands changed to make use of the `WebDriver:`
638   prefixes introduced with Firefox 56.
640 - Overhaul of Firefox preferences.
642   Already deprecated preferences in Firefox versions earlier than
643   57 got removed.
645 - [webdriver crate] upgraded to 0.36.0.
647 ### Fixed
649 - Force use of IPv4 network stack.
651   On certain system configurations, where `localhost` resolves to
652   an IPv6 address, geckodriver would attempt to connect to Firefox
653   on the wrong IP stack, causing the connection attempt to time out
654   after 60 seconds.  We now ensure that geckodriver uses IPv4
655   consistently to both connect to Firefox and for allocating a free
656   port.
658 - geckodriver failed to locate the correct Firefox binary if it was
659   found under a _firefox_ or _firefox-bin_ directory, depending on
660   the system, because it thought the parent directory was the
661   executable.
663 - On Unix systems (macOS, Linux), geckodriver falsely reported
664   non-executable files as valid binaries.
666 - When stdout and stderr is redirected by geckodriver, a bug prevented
667   the redirections from taking effect.
670 0.20.1 (2018-04-06)
671 -------------------
673 ### Fixed
675 - Avoid attempting to kill Firefox process that has stopped.
677   With the change to allow Firefox enough time to shut down in
678   0.20.0, geckodriver started unconditionally killing the process
679   to reap its exit status.  This caused geckodriver to inaccurately
680   report a successful Firefox shutdown as a failure.
682   The regression should not have caused any functional problems, but
683   the termination cause and the exit status are now reported correctly.
686 0.20.0 (2018-03-08)
687 -------------------
689 ### Added
691 - New `--jsdebugger` flag to open the [Browser Toolbox] when Firefox
692   launches.  This is useful for debugging Marionette internals.
694 - Introduced the temporary, boolean capability
695   `moz:useNonSpecCompliantPointerOrigin` to disable the WebDriver
696   conforming behavior of calculating the Pointer Origin.
698 ### Changed
700 - HTTP status code for the [`StaleElementReference`] error changed
701   from 400 (Bad Request) to 404 (Not Found).
703 - Backtraces from geckodriver no longer substitute for missing
704   Marionette stacktraces.
706 - [webdriver crate] upgraded to 0.35.0.
708 ### Fixed
710 - The Firefox process is now given ample time to shut down, allowing
711   enough time for the Firefox shutdown hang monitor to kick in.
713   Firefox has an integrated background monitor that observes
714   long-running threads during shutdown.  These threads will be
715   killed after 63 seconds in the event of a hang.  To allow Firefox
716   to shut down these threads on its own, geckodriver has to wait
717   that time and some additional seconds.
719 - Grapheme clusters are now accepted as input for keyboard input
720   to actions.
722   Input to the `value` field of the `keyDown` and `keyUp` action
723   primitives used to only accept single characters, which means
724   geckodriver would error when a valid grapheme cluster was sent in,
725   for example with the tamil nadu character U+0BA8 U+0BBF.
727   Thanks to Greg Fraley for fixing this bug.
729 - Improved error messages for malformed capability values.
732 0.19.1 (2017-10-30)
733 -------------------
735 ### Changed
737 - Search suggestions in the location bar turned off as not to
738   trigger network connections
740 - Block addons incompatible with E10s
742 ### Fixed
744 - Marionette stacktraces are now correctly propagated
746 - Some error messages have been clarified
748 ### Removed
750 - Removed obsolete `socksUsername` and `socksPassword` proxy
751   configuration keys because neither were picked up or recognised
754 0.19.0 (2017-09-16)
755 -------------------
757 Note that with geckodriver 0.19.0 the following versions are recommended:
758 - Firefox 55.0 (and greater)
759 - Selenium 3.5 (and greater)
761 ### Added
763 - Added endpoint:
764   - POST `/session/{session id}/window/minimize` for the [Minimize Window]
765     command
767 - Added preference `extensions.shield-recipe-client.api_url` to disable
768   shield studies which could unexpectedly change the behavior of Firefox
770 - Introduced the temporary, boolean capability `moz:webdriverClick` to
771   enable the WebDriver conforming behavior of the [Element Click] command
773 - Added crashreporter environment variables to better control the browser
774   in case of crashes
776 - Added preference `dom.file.createInChild` set to true to allow file
777   object creation in content processes
779 ### Changed
781 - Log all used application arguments and not only `-marionette`
783 - Early abort connection attempts to Marionette if the Firefox process
784   closed unexpectetly
786 - Removed deprecated `socksProxyVersion` in favor of `socksVersion`
788 - Removed `ftpProxyPort`, `httpProxyPort`, `sslProxyPort`, and
789   `socksProxyPort` because _ports_ have to be set for `ftpProxy`,
790   `httpProxy`, `sslProxy`, and `socksProxy` using ":<PORT>"
792 - The `proxyType` `noproxy` has been replaced with `direct` in accordance
793   with recent WebDriver specification changes
795 - The [`WindowRectParameters`] have been updated to return signed 32-bit
796   integers in accordance with the CSS and WebDriver specifications, and
797   to be more liberal with the input types
799 - Mapped the [`FullscreenWindow`] to the correct Marionette command
801 - To make sure no browser process is left behind when the [`NewSession`]
802   fails, the process is closed immediately now
804 - `/moz/addon/install` command accepts an `addon` parameter, in lieu of
805   `path`, containing an addon as a Base64 string (fixed by [Jason Juang])
807 - [webdriver crate] upgraded to version 0.31.0
809 - [mozrunner crate] upgraded to version 0.5.0
811 ### Removed
813 - Removed the following obsolete preferences for Firefox:
814   - `browser.safebrowsing.enabled`
815   - `browser.safebrowsing.forbiddenURIs.enabled`
816   - `marionette.defaultPrefs.port`
817   - `marionette.logging`
820 0.18.0 (2017-07-10)
821 -------------------
823 ### Changed
825 - [`RectResponse`] permits returning floats for `width` and `height`
826   fields
828 - New type [`CookieResponse`] for the [`GetNamedCookie`] command returns
829   a single cookie, as opposed to an array of a single cookie
831 - To pick up a prepared profile from the filesystem, it is now possible
832   to pass `["-profile", "/path/to/profile"]` in the `args` array on
833   [`moz:firefoxOptions`]
835 - geckodriver now recommends Firefox 53 and greater
837 - Version information (`--version`) contains the hash from from the
838   commit used to build geckodriver
840 - geckodriver version logged on startup
842 - [webdriver crate] upgraded to version 0.27.0
844 - [mozrunner crate] upgraded to version 0.4.1
846 ### Fixed
848 - The [`SetTimeouts`] command maps to the Marionette `setTimeouts`
849   command, which makes geckodriver compatible with Firefox 56 and greater
851 - Linux x86 (i686-unknown-linux-musl) builds are fixed
854 0.17.0 (2017-06-09)
855 -------------------
857 ### Added
859 - Added endpoints:
860   - POST `/session/{session id}/window/fullscreen` to invoke the window
861     manager-specific `full screen` operation
862   - POST `/session/{session id}/moz/addon/install` to install an extension
863     (Gecko only)
864   - POST `/session/{session id}/moz/addon/uninstall` to uninstall an
865     extension (Gecko only)
867 ### Changed
869 - Increasing the length of the `network.http.phishy-userpass-length`
870   preference will cause Firefox to not prompt when navigating to a
871   website with a username or password in the URL
873 - Library dependencies upgraded to mozrunner 0.4 and mozprofile 0.3
874   to allow overriding of preferences via capabilities if those have been
875   already set in the profile
877 - Library dependencies upgraded to mozversion 0.1.2 to only use the
878   normalized path of the Firefox binary for version checks but not to
879   actually start the browser, which broke several components in Firefox
880   on Windows
882 ### Fixed
884 - The [SetWindowRect] command now returns the [WindowRectResponse]
885   when it is done
887 - Use ASCII versions of array symbols to properly display them in the
888   Windows command prompt
890 - Use [`SessionNotCreated`] error instead of [`UnknownError`] if there
891   is no current session
894 0.16.1 (2017-04-26)
895 -------------------
897 ### Fixed
899 - Read Firefox version number from stdout when failing
900   to look for the application .ini file (fixes [Selenium
901   #3884](https://github.com/SeleniumHQ/selenium/issues/3884))
903 - Session is now ended when closing the last Firefox window (fixes
904   [#613](https://github.com/mozilla/geckodriver/issues/613))
907 0.16.0 (2017-04-21)
908 -------------------
910 Note that geckodriver v0.16.0 is only compatible with Selenium 3.4
911 and greater.
913 ### Added
915 - Support for WebDriver-conforming [New Session] negotiation, with
916   `desiredCapabilities`/`requiredCapabilities` negotiation as fallback
918 - Added two new endpoints:
919   - GET `/session/{session id}/window/rect` for [Get Window Rect]
920   - POST `/session/{session id}/window/rect` for [Set Window Rect]
922 - Align errors with the [WebDriver errors]:
923   - Introduces new errors [`ElementClickIntercepted`],
924   [`ElementNotInteractable`], [`InvalidCoordinates`], [`NoSuchCookie`],
925   [`UnableToCaptureScreen`], and [`UnknownCommand`]
926   - Removes `ElementNotVisible` and `InvalidElementCoordinates` errors
928 ### Removed
930 - Removed following list of unused endpoints:
931   - GET `/session/{session id}/alert_text`
932   - POST `/session/{session id}/alert_text`
933   - POST `/session/{session id}/accept_alert`
934   - POST `/session/{session id}/dismiss_alert`
935   - GET `/session/{session id}/window_handle`
936   - DELETE `/session/{session id}/window_handle`
937   - POST `/session/{session id}/execute_async`
938   - POST `/session/{session id}/execute`
940 ### Changed
942 - [`SendKeysParameters`], which is used for the [Element Send Keys] and
943   [Send Alert Text] commands, has been updated to take a string `text`
944   field
946 - [`CookieResponse`] and [`CloseWindowResponse`] fixed to be properly
947   wrapped in a `value` field, like other responses
949 - Allow negative numbers for `x` and `y` fields in `pointerMove` action
951 - Disable Flash and the plugin container in Firefox by
952   default, which should help mitigate the “Plugin Container
953   for Firefox has stopped working” problems [many users were
954   reporting](https://github.com/mozilla/geckodriver/issues/225) when
955   deleting a session
957 - Preferences passed in a profile now take precedence over
958   set of default preferences defined by geckodriver (fixed by
959   [Marc Fisher](https://github.com/DrMarcII))
960   - The exceptions are the `marionette.port` and `marionette.log.level`
961     preferences and their fallbacks, which are set unconditionally and
962     cannot be overridden
964 - Remove default preference that disables unsafe CPOW checks
966 - WebDriver library updated to 0.25.2
968 ### Fixed
970 - Fix for the “corrupt deflate stream” exception that
971   sometimes occurred when trying to write an empty profile by
972   [@kirhgoph](https://github.com/kirhgoph)
974 - Recognise `sslProxy` and `sslProxyPort` entries in the proxy
975   configuration object (fixed by [Jason Juang])
977 - Fix “`httpProxyPort` was not an integer” error (fixed by [Jason
978   Juang])
980 - Fix broken unmarshaling of _Get Timeouts_ response format from Firefox
981   52 and earlier (fixed by [Jason Juang])
983 - Allow preferences in [`moz:firefoxOptions`] to be both positive- and
984   negative integers (fixed by [Jason Juang])
986 - Allow IPv6 hostnames in the proxy configuration object
988 - i686-unknown-linux-musl (Linux 32-bit) build fixed
990 - Log messages from other Rust modules are now ignored
992 - Improved log messages to the HTTPD
995 0.15.0 (2017-03-08)
996 -------------------
998 ### Added
1000 - Added routing and parsing for the [Get Timeouts] command
1002 ### Changed
1004 - All HTTP responses are now wrapped in `{value: …}` objects per the
1005   WebDriver specification; this may likely require you to update your
1006   client library
1008 - Pointer move action’s `element` key changed to `origin`, which
1009   lets pointer actions originate within the context of the viewport,
1010   the pointer’s current position, or from an element
1012 - Now uses about:blank as the new tab document; this was previously
1013   disabled due to [bug 1333736](https://bugzil.la/1333736) in Marionette
1015 - WebDriver library updated to 0.23.0
1017 ### Fixed
1019 - Aligned the data structure accepted by the [Set Timeouts] command with
1020   the WebDriver specification
1023 0.14.0 (2017-01-31)
1024 -------------------
1026 ### Changed
1028 - Firefox process is now terminated and session ended when the last
1029   window is closed
1031 - WebDriver library updated to version 0.20.0
1033 ### Fixed
1035 - Stacktraces are now included when the error originates from within
1036   the Rust stack
1038 - HTTPD now returns correct response headers for `Content-Type` and
1039   `Cache-Control` thanks to [Mike Pennisi]
1042 0.13.0 (2017-01-06)
1043 -------------------
1045 ### Changed
1047 - When navigating to a document with an insecure- or otherwise invalid
1048   TLS certificate, an [insecure certificate] error will be returned
1050 - On macOS, deducing Firefox’ location on the system will look for
1051   _firefox-bin_ on the system path (`PATH` environmental variable) before
1052   looking in the applications folder
1054 - Window position coordinates are allowed to be negative numbers, to
1055   cater for maximised window positioning on Windows
1057 - WebDriver library updated to version 0.18.0
1059 ### Fixed
1061 - Check for single-character key codes in action sequences now counts
1062   characters instead of bytes
1065 0.12.0 (2017-01-03)
1066 -------------------
1068 ### Added
1070 - Added [Take Element Screenshot] command
1072 - Added new [Status] command
1074 - Added routing for the [Get Timeouts] command, but it is not yet
1075   implemented in Marionette, and will return an _unsupported operation_
1076   error until it is
1078 - Implemented routing for [new actions API](Actions), but it too is not
1079   yet fully implemented in Marionette
1081 ### Changed
1083 - [Synced Firefox
1084   preferences](https://github.com/mozilla/geckodriver/commit/2bfdc3ec8151c427a6a75a6ba3ad203459540495)
1085   with those used in Mozilla automation
1087 - Default log level for debug builds of Firefox, which used to be `DEBUG`,
1088   changed to `INFO`-level
1090 - WebDriver library dependency upgraded to 0.17.1
1092 - Using _session not created_ error when failing to start session
1094 - geckodriver will exit with exit code 69 to indicate that the port
1095   is unavailable
1097 ### Fixed
1099 - Improved logging when starting Firefox
1101 - Reverted to synchronous logging, which should address cases of
1102   inconsistent output when failing to bind to port
1104 - Clarified in README that geckodriver is not supported on Windows XP
1106 - Added documentation of supported capabilities to [README]
1108 - Included capabilities example in the [README]
1111 0.11.1 (2016-10-10)
1112 -------------------
1114 ### Fixed
1116 - Version number in binary now reflects the release version
1119 0.11.0 (2016-10-10)
1120 -------------------
1122 ### Added
1124 - Introduced continuous integration builds for Linux- and Windows 32-bit
1125   binaries
1127 - Added commands for setting- and getting the window position
1129 - Added new extension commands for finding an element’s anonymous
1130   children and querying its attributes; accessible through the
1131   `/session/{sessionId}/moz/xbl/{elementId}/anonymous_children`
1132   to return all anonymous children and
1133   `/session/{sessionId}/moz/xbl/{elementId}/anonymous_by_attribute` to
1134   return an anonymous element by a name and attribute query
1136 - Introduced a [`moz:firefoxOptions`] capability to customise a Firefox
1137   session:
1139   - The `binary`, `args`, and `profile` entries on this dictionary
1140     is equivalent to the old `firefox_binary`, `firefox_args`, and
1141     `firefox_profile` capabilities, which have now all been removed
1143   - The `log` capability takes a dictionary such as `{log: "trace"}`
1144     to enable trace level verbosity in Gecko
1146   - The `prefs` capability lets you define Firefox preferences through
1147     capabilities
1149 - Re-introduced the `--webdriver-port` argument as a hidden alias to
1150   `--port`
1152 ### Changed
1154 - `firefox_binary`, `firefox_args`, and `firefox_profile` capabilities
1155   removed in favour of the [`moz:firefoxOptions`] dictionary detailed above
1156   and in the [README]
1158 - Removed `--no-e10s` flag, and geckodriver will from now rely on the
1159   Firefox default multiprocessing settings (override using preferences)
1161 - Disable pop-up blocker in the default profile by @juangj
1163 - Changed Rust compiler version to 1.12 (beta)
1164   temporarily because of [trouble linking Musl
1165   binaries](https://github.com/rust-lang/rust/issues/34978)
1167 - Replaced _env_logger_ logging facility with the _slog_ package,
1168   causing the `RUST_LOG` environment variable to no longer have any affect
1170 - Updated the WebDriver Rust library to version 0.15
1172 ### Fixed
1174 - Corrected link to repository in Cargo metadata
1176 - Verbosity shorthand flag `-v[v]` now works again, following the
1177   replacement of the argument parsing library in the previous release
1179 - When the HTTPD fails to start, errors are propagated to the user
1181 - Disabled the additional welcome URL
1182   (`startup.homepage_welcome_url.additional`) so that officially branded
1183   Firefox builds do not start with two open tabs in fresh profiles
1185 - Disabled homepage override URL redirection on milestone upgrades,
1186   which means a tab with an upgrade notice is not displayed when launching
1187   a new Firefox version
1190 0.10.0 (2016-08-02)
1191 -------------------
1193 ### Changed
1195 - Use multi-process Firefox (e10s) by default, added flag `--no-e10s`
1196   to disable it and removed `--e10s` flag
1198 - Disable autofilling of forms by default by [Sven Jost]
1200 - Replace _argparse_ with _clap_ for arguments parsing
1202 ### Fixed
1204 - Attempt to deploy a single file from Travis when making a release
1206 - Grammar fix in [README]
1209 0.9.0 (2016-06-30)
1210 ------------------
1212 ### Added
1214 - Add ability to use `firefox_binary` capability to define location of
1215   Firefox to use
1217 - Automatically detect the default Firefox path if one is not given
1219 - Cross-compile to Windows and ARMv7 (HF) in CI
1221 - Add Musl C library-backed static binaries in CI
1223 - Add `-v`, `-vv`, and `--log LEVEL` flags to increase Gecko verbosity
1225 - Add Get Element Property endpoint
1227 - Add new `--version` flag showing copying information and a link to
1228   the repository
1230 ### Changed
1232 - Now connects to a Marionette on a random port by default
1234 - Update webdriver-rust library dependency
1236 - Migrated to use Travis to deploy new releases
1238 - Reduced amount of logging
1240 - Introduced a changelog (this)
1243 0.8.0 (2016-06-07)
1244 ------------------
1246 ### Added
1248 - Allow specifying array of arguments to the Firefox binary through the
1249   `firefox_args` capability
1251 - Pass parameters with [New Session] command
1253 ### Changed
1255 - Change product name to _geckodriver_
1257 - Make README more exhaustive
1259 - Quit Firefox when deleting a session
1261 - Update webdriver-rust library
1263 - Update dependencies
1265 ### Fixed
1267 - Fix tests
1269 - FIx typo in error message for parsing errors
1272 0.7.1 (2016-04-27)
1273 ------------------
1275 ### Added
1277 - Add command line flag for using e10s enabled Firefox by [Kalpesh
1278   Krishna]
1280 - Allow providing custom profiles
1282 ### Changed
1284 - Allow binding to an IPv6 address by [Jason Juang]
1286 - By default, connect to host-agnostic localhost by [Jason Juang]
1288 - Make `GeckoContextParameters` public
1290 - Update dependencies
1292 ### Fixed
1294 - Squash rustc 1.6 warnings by using `std::thread::sleep(dur: Duration)`
1297 0.6.2 (2016-01-20)
1298 ------------------
1300 ### Added
1302 - Add LICENSE file from [Joshua Burning]
1304 - Schedule builds in CI on pushes and pull requests
1306 ### Changed
1308 - Enable CPOWs in Marionette
1311 0.6.0 (2016-01-12)
1312 ------------------
1314 ### Added
1316 - Add Get Page Source endpoint
1318 ### Changed
1320 - Handle arrays being sent from Marionette
1322 - Correct build steps in [README]
1324 - Update what properties are read from errors sent by Marionette
1326 - Update dependencies
1329 0.5.0 (2015-12-10)
1330 ------------------
1332 ### Changed
1334 - Update argparse dependency to use Cargo
1336 - Update to the latest version of the Marionette wire protocol
1338 - Update to latest webdriver-rust library
1340 - Update dependencies
1343 0.4.2 (2015-10-02)
1344 ------------------
1346 ### Changed
1348 - Skip compiling optional items in hyper
1351 0.4.1 (2015-10-02)
1352 ------------------
1354 ### Changed
1356 - Update webdriver-rust library
1358 - Update dependencies
1361 0.4.0 (2015-09-28)
1362 ------------------
1364 ### Added
1366 - Add command extensions for switching between content- and chrome
1367   contexts
1369 - Add more documentation from [Vlad Filippov]
1371 ### Changed
1373 - Update Cargo.lock with new dependencies for building
1375 - Update for protocol updates that flatten commands
1377 - Update to new protocol error handling
1379 - Update for Marionette protocol version 3 changes
1381 - Strip any leading and trailing `{}` from the `sessionId` Marionette
1382   returns
1384 - Update dependencies
1386 ### Fixed
1388 - Fix `GetCSSValue` message to send correct key `propertyName`
1390 - Fix example in documentation from @vladikoff
1393 0.3.0 (2015-08-17)
1394 ------------------
1396 ### Added
1398 - Add support for finding elements in subtrees
1401 0.2.0 (2015-05-20)
1402 ------------------
1404 ### Added
1406 - Extra debug messages
1408 - Add ability to set WebDriver port
1410 - Add support for getting the active element
1412 - Add support for `GetCookies` and `DeleteCookie`/`DeleteCookies`
1414 - Add preferences that switch off certain features not required for
1415   WebDriver tests
1417 ### Changed
1419 - Make failing to communicate with Firefox a fatal error that closes
1420   the session
1422 - Shut down session only when losing connection
1424 - Better handling of missing command line flags
1426 - Poll for connection every 100ms rather than every 100s
1428 - Switch to string-based error codes
1430 - Switch webdriver-rust library dependency to be pulled from git
1432 - Update dependencies
1434 ### Fixed
1436 - Handle null id for switching to frame more correctly
1439 0.1.0 (2015-04-09)
1440 ------------------
1442 ### Added
1444 - Add proxy for converting WebDriver HTTP protocol to Marionette protocol
1446 - Add endpoints for modal dialogue support
1448 - Allow connecting to a running Firefox instance
1450 - Add explicit Cargo.lock file
1452 - Start Firefox when we get a [NewSession] command
1454 - Add flag parsing and address parsing
1456 - Add basic error handling
1458 ### Changed
1460 - Update for Rust beta
1462 - Switch to new IO libraries
1464 - Pin webdriver-rust commit so we can upgrade rustc versions independently
1466 - Set preferences when starting Firefox
1468 - Improve some error messages
1470 - Re-enable environment variable based logging
1472 ### Fixed
1474 - Fix Get Element Rect command to return floats instead of integers
1476 - Fix passing of web elements to Switch To Frame command
1478 - Fix serialisation of script commands
1480 - Fix assorted bugs found by the Selenium test suite
1482 - Fix conversion of Find Element/Find Elements responses from Marionette
1483   to WebDriver
1485 - Fixed build by updating Cargo.lock with new dependencies for building
1487 - Squash compile warnings
1491 [README]: https://github.com/mozilla/geckodriver/blob/master/README.md
1492 [Browser Toolbox]: https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox
1493 [WebDriver conformance]: https://wpt.fyi/results/webdriver/tests?label=experimental
1494 [`moz:firefoxOptions`]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/firefoxOptions
1495 [`moz:debuggerAddress`]: https://firefox-source-docs.mozilla.org/testing/geckodriver/Capabilities.html#moz-debuggeraddress
1496 [Microsoft Visual Studio redistributable runtime]: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
1497 [GeckoView]: https://wiki.mozilla.org/Mobile/GeckoView
1498 [Fission]: https://wiki.mozilla.org/Project_Fission
1499 [Capabilities]: https://firefox-source-docs.mozilla.org/testing/geckodriver/Capabilities.html
1500 [Flags]: https://firefox-source-docs.mozilla.org/testing/geckodriver/Flags.html
1501 [enable remote debugging on the Android device]: https://developers.google.com/web/tools/chrome-devtools/remote-debugging
1502 [macOS notarization]: https://firefox-source-docs.mozilla.org/testing/geckodriver/Notarization.html
1504 [`CloseWindowResponse`]: https://docs.rs/webdriver/newest/webdriver/response/struct.CloseWindowResponse.html
1505 [`CookieResponse`]: https://docs.rs/webdriver/newest/webdriver/response/struct.CookieResponse.html
1506 [`DeleteSession`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.DeleteSession
1507 [`ElementClickIntercepted`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.ElementClickIntercepted
1508 [`ElementNotInteractable`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.ElementNotInteractable
1509 [`FullscreenWindow`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.FullscreenWindow
1510 [`GetNamedCookie`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.GetNamedCookie
1511 [`GetWindowRect`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.GetWindowRect
1512 [`InvalidCoordinates`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.InvalidCoordinates
1513 [`MaximizeWindow`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.MaximizeWindow
1514 [`MinimizeWindow`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.MinimizeWindow
1515 [`NewSession`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.NewSession
1516 [`NoSuchCookie`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.NoSuchCookie
1517 [`RectResponse`]: https://docs.rs/webdriver/0.27.0/webdriver/response/struct.RectResponse.html
1518 [`SendKeysParameters`]: https://docs.rs/webdriver/newest/webdriver/command/struct.SendKeysParameters.html
1519 [`SessionNotCreated`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.SessionNotCreated
1520 [`SetTimeouts`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.SetTimeouts
1521 [`SetWindowRect`]: https://docs.rs/webdriver/newest/webdriver/command/enum.WebDriverCommand.html#variant.SetWindowRect
1522 [`StaleElementReference`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.StaleElementReference
1523 [`UnableToCaptureScreen`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.UnableToCaptureScreen
1524 [`UnknownCommand`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.UnknownCommand
1525 [`UnknownError`]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html#variant.UnknownError
1526 [`WindowRectParameters`]: https://docs.rs/webdriver/newest/webdriver/command/struct.WindowRectParameters.html
1528 [Add Cookie]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Commands/AddCookie
1529 [invalid argument]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors/InvalidArgument
1530 [invalid session id]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors/InvalidSessionID
1531 [script timeout]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors/ScriptTimeout
1532 [timeout]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors/Timeout
1533 [timeout object]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Timeouts
1534 [`platformName` capability]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities#platformName
1536 [hyper]: https://hyper.rs/
1537 [mozrunner crate]: https://crates.io/crates/mozrunner
1538 [serde]: https://serde.rs/
1539 [webdriver crate]: https://crates.io/crates/webdriver
1541 [Actions]: https://w3c.github.io/webdriver/webdriver-spec.html#actions
1542 [Delete Session]: https://w3c.github.io/webdriver/webdriver-spec.html#delete-session
1543 [Element Click]: https://w3c.github.io/webdriver/webdriver-spec.html#element-click
1544 [Get Timeouts]: https://w3c.github.io/webdriver/webdriver-spec.html#get-timeouts
1545 [Get Window Rect]: https://w3c.github.io/webdriver/webdriver-spec.html#get-window-rect
1546 [insecure certificate]: https://w3c.github.io/webdriver/webdriver-spec.html#dfn-insecure-certificate
1547 [Minimize Window]: https://w3c.github.io/webdriver/webdriver-spec.html#minimize-window
1548 [New Session]: https://w3c.github.io/webdriver/webdriver-spec.html#new-session
1549 [New Window]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Commands/New_Window
1550 [Print]: https://w3c.github.io/webdriver/webdriver-spec.html#print
1551 [Send Alert Text]: https://w3c.github.io/webdriver/webdriver-spec.html#send-alert-text
1552 [Set Timeouts]: https://w3c.github.io/webdriver/webdriver-spec.html#set-timeouts
1553 [Set Window Rect]: https://w3c.github.io/webdriver/webdriver-spec.html#set-window-rect
1554 [Status]: https://w3c.github.io/webdriver/webdriver-spec.html#status
1555 [Take Element Screenshot]: https://w3c.github.io/webdriver/webdriver-spec.html#take-element-screenshot
1556 [WebDriver errors]: https://w3c.github.io/webdriver/webdriver-spec.html#handling-errors
1558 [Bastien Orivel]: https://github.com/Eijebong
1559 [Jason Juang]: https://github.com/juangj
1560 [Jeremy Lempereur]: https://github.com/o0Ignition0o
1561 [Joshua Bruning]: https://github.com/joshbruning
1562 [Kalpesh Krishna]: https://github.com/martiansideofthemoon
1563 [Kriti Singh]: https://github.com/kritisingh1
1564 [Mike Pennisi]: https://github.com/jugglinmike
1565 [Nupur Baghel]: https://github.com/nupurbaghel
1566 [Peter Major]: https://github.com/aldaris
1567 [Shivam Singhal]: https://github.com/championshuttler
1568 [Sven Jost]: https://github/mythsunwind
1569 [Vlad Filippov]: https://github.com/vladikoff