1Change log 2========== 3 4All notable changes to this program are documented in this file. 5 60.29.1 (2021-04-09), `970ef713fe58`) 7------------------------------------- 8 9### Known problems 10 11- _macOS 10.15 (Catalina):_ 12 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. 16 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. 20 21- _Android:_ 22 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. 27 28### Added 29 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. 34 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. 38 39### Fixed 40 41- Fixed a stack overflow crash in thread 'webdriver dispatcher' when 42 handling certain device errors. 43 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. 50 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. 54 55 560.29.0 (2021-01-14, `cf6956a5ec8e`) 57------------------------------------ 58 59### Known problems 60 61- _macOS 10.15 (Catalina):_ 62 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. 66 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. 70 71- _Android:_ 72 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. 77 78 In some cases geckodriver could crash due to a stack overflow when handling 79 certain device errors. 80 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. 84 85### Added 86 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. 92 93 Note: For this experimental feature the site-isolation support of 94 Firefox aka [Fission] will be not available. 95 960.28.0 (2020-11-03, `c00d2b6acd3f`) 97------------------------------------ 98 99### Known problems 100 101- _macOS 10.15 (Catalina):_ 102 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. 106 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. 110 111- _Android:_ 112 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. 117 118 In some cases geckodriver could crash due to a stack overflow when handling 119 certain device errors. 120 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. 124 125### Added 126 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. 130 131### Fixed 132 133- Firefox can be started again via a shell script that is located outside of the 134 Firefox directory on Linux. 135 136- If Firefox cannot be started by geckodriver the real underlying error message is 137 now being reported. 138 139- Version numbers for minor and extended support releases of Firefox are now parsed correctly. 140 141### Removed 142 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. 145 1460.27.0 (2020-07-27, `7b8c4f32cdde`) 147------------------------------------ 148 149### Security Fixes 150 151- CVE-2020-15660 152 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`. 156 157 - Added checking of the `Origin` header for `POST` requests. 158 159 - The version number of Firefox is now checked when establishing a session. 160 161### Known problems 162 163- _macOS 10.15 (Catalina):_ 164 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. 168 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. 172 173- _Android:_ 174 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. 179 180 In some cases geckodriver could crash due to a stack overflow when handling 181 certain device errors. 182 183### Added 184 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) 188 189- Support for print-to-PDF 190 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. 194 195- Support for same-site cookies 196 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. 201 202### Fixed 203 204- _Android:_ 205 206 * Firefox running on Android devices can now be controlled from a Windows host. 207 208 * Setups with multiple connected Android devices are now supported. 209 210 * Improved cleanup of configuration files. This prevents crashes if 211 the application is started manually after launching it through 212 geckodriver. 213 214- Windows and Linux binaries are again statically linked. 215 2160.26.0 (2019-10-12, `e9783a644016'`) 217------------------------------------- 218 219Note that with this release the minimum recommended Firefox version 220has changed to Firefox ≥60. 221 222### Known problems 223 224- _macOS 10.15 (Catalina):_ 225 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. 229 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. 233 234- _Windows:_ 235 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. 239 240- _Android:_ 241 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. 246 247 In some cases geckodriver could crash due to a stack overflow when handling 248 certain device errors. 249 250### Added 251 252- Support for Firefox on Android 253 254 Starting with this release geckodriver is able to connect to 255 Firefox on Android systems, and to control packages based on 256 [GeckoView]. 257 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]. 262 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. 267 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. 271 272 When the session is created, the `platformName` capability will 273 return "`android`" instead of reporting the platform of the host 274 system. 275 276### Changed 277 278- Continued Marionette refactoring changes 279 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. 283 284### Fixed 285 286- Connection attempts to Firefox made more reliable 287 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. 291 292- Corrected error codes used during session creation 293 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. 298 299 3000.25.0 (2019-09-09, `bdb64cf16b68`) 301----------------------------------- 302 303__Note to Windows users!__ 304With this release you must have the [Microsoft Visual Studio redistributable runtime] 305installed on your system for the binary to run. 306This is a [known bug](https://github.com/mozilla/geckodriver/issues/1617) 307with this particular release that we intend to release a fix for soon. 308 309### Added 310 311- Added support for HTTP `HEAD` requests to the HTTPD 312 313 geckodriver now responds correctly to HTTP `HEAD` requests, 314 which can be used for probing whether it supports a particular API. 315 316 Thanks to [Bastien Orivel] for this patch. 317 318- Added support for searching for Nightly’s default path on macOS 319 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: 324 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` 329 330 Thanks to [Kriti Singh] for this patch. 331 332- Support for application bundle paths on macOS 333 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. 338 339 Thanks to [Nupur Baghel] for this patch. 340 341- macOS and Windows builds are signed 342 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. 347 348### Removed 349 350- Dropped support for legacy Selenium web element references 351 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. 356 357 Thanks to [Shivam Singhal] for this patch. 358 359- Removed `--webdriver-port` command-line option 360 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. 364 365### Changed 366 367- Refactored Marionette serialisation 368 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. 372 373 This work should have no visible side-effects for users. 374 375 Thanks to [Nupur Baghel] for working on this throughout her 376 Outreachy internship at Mozilla. 377 378- Improved error messages for incorrect command-line usage 379 380### Fixed 381 382- Errors related to incorrect command-line usage no longer hidden 383 384 By mistake, earlier versions of geckodriver failed to print incorrect 385 flag use. With this release problems are again written to stderr. 386 387- Search system path for Firefox binary on BSDs 388 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. 392 393 3940.24.0 (2019-01-28, `917474f3473e`) 395----------------------------------- 396 397### Added 398 399- Introduces `strictFileInteractability` capability 400 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. 406 407- Added new endpoint `GET /session/{session id}/moz/screenshot/full` 408 for taking full document screenshots, thanks to Greg Fraley. 409 410- Added new `--marionette-host <hostname>` flag for binding to a 411 particular interface/IP layer on the system. 412 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. 417 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. 421 422- geckodriver now sets the `app.update.disabledForTesting` preference 423 to prevent Firefox >= 65 from automatically updating whilst under 424 automation. 425 426### Removed 427 428- ARMv7 HF builds have been discontinued 429 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. 433 434 To cross-compile from another host system, you can use this command: 435 436 % cargo build --target armv7-unknown-linux-gnueabihf 437 438### Changed 439 440- Allow file uploads to hidden `<input type=file>` elements 441 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. 445 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. 449 450- Allow use of an indefinite script timeout for the [Set Timeouts] 451 command, thanks to reimu. 452 453### Fixed 454 455- Corrected `Content-Type` of response header to `utf-8` to fix 456 an HTTP/1.1 compatibility bug. 457 458- Relaxed the deserialization of timeouts parameters to allow unknown 459 fields for the [Set Timeouts] command. 460 461- Fixed a regression in the [Take Element Screenshot] to not screenshot 462 the viewport, but the requested element. 463 464 4650.23.0 (2018-10-03) 466------------------- 467 468This release contains a number of fixes for regressions introduced 469in 0.22.0, where we shipped a significant refactoring to the way 470geckodriver internally dealt with JSON serialisation. 471 472### Removed 473 474- The POST `/session/{session id}/element/{element id}/tap` endpoint 475 was removed, thanks to Kerem Kat. 476 477### Changed 478 479- [webdriver crate] upgraded to 0.38.0. 480 481### Fixed 482 483- `desiredCapabilities` and `requiredCapabilities` are again 484 recognised on session creation 485 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. 491 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. 495 496- `duration` field made optional on pause actions 497 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. 501 502- Log level formatted to expected Marionette input 503 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. 507 508- `temporary` field on addon installation made optional 509 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. 513 514- SHA1s in version information uses limited number of characters 515 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. 519 520 5210.22.0 (2018-09-15) 522------------------- 523 524This release marks an important milestone on the path towards 525a stable release of geckodriver. Large portions of geckodriver 526and the [webdriver] library it is based on has been refactored to 527accommodate using [serde] for JSON serialization. 528 529We have also made great strides to improving [WebDriver conformance], 530to the extent that geckodriver is now _almost_ entirely conforming 531to the standard. 532 533### Added 534 535- Support for WebDriver web element-, web frame-, and web window 536 identifiers from Firefox. 537 538- Added support for the non-configurable `setWindowRect` capability 539 from WebDriver. 540 541 This capability informs whether the attached browser supports 542 manipulating the window dimensions and position. 543 544- A new extension capability `moz:geckodriverVersion` is returned 545 upon session creation. 546 547### Changed 548 549- All JSON serialization and deserialisation has moved from 550 rustc_serialize to [serde]. 551 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. 557 558- The HTTP/1.1 `Keep-Alive` timeout for persistent connections has 559 been increased to 90 seconds. 560 561- An [invalid session ID] error is now returned when there is no 562 active session. 563 564- An [invalid argument] error is now returned when [Add Cookie] 565 is given invalid parameters. 566 567- The handshake when geckodriver connects to Marionette has been 568 hardened by killing the Firefox process if it fails. 569 570- The handshake read timeout has been reduced to 10 seconds instead 571 of waiting forever. 572 573- The HTTP server geckodriver uses, [hyper], has been upgraded to 574 version 0.12, thanks to [Bastien Orivel]. 575 576- geckodriver version number is no longer logged on startup, as 577 the log level is not configured until a session is created. 578 579 The version number is available through `--version`, and now 580 also through a new `moz:geckodriverVersion` field in the matched 581 capabilities. 582 583- [webdriver crate] upgraded to 0.37.0. 584 585### Fixed 586 587- Parsing [timeout object] values has been made WebDriver conforming, 588 by allowing floats as input. 589 590- Implicit downloads of OpenH264 and Widevine plugins has been disabled. 591 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]. 595 596- Many documentation improvements, now published on 597 https://firefox-source-docs.mozilla.org/testing/geckodriver/. 598 599 6000.21.0 (2018-06-15) 601------------------- 602 603Note that with this release of geckodriver the minimum recommended 604Firefox and Selenium versions have changed: 605 606 - Firefox 57 (and greater) 607 - Selenium 3.11 (and greater) 608 609### Added 610 611- Support for the chrome element identifier from Firefox. 612 613- The `unhandledPromptBehavior` capability now accepts `accept and 614 notify`, `dismiss and notify`, and `ignore` options. 615 616 Note that the unhandled prompt handler is not fully supported in 617 Firefox at the time of writing. 618 619### Changed 620 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`]. 624 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. 629 630- WebDriver commands that do not have a return value now correctly 631 return `{value: null}` instead of an empty dictionary. 632 633- The HTTP server now accepts `Keep-Alive` connections. 634 635- Firefox remote protocol command mappings updated. 636 637 All Marionette commands changed to make use of the `WebDriver:` 638 prefixes introduced with Firefox 56. 639 640- Overhaul of Firefox preferences. 641 642 Already deprecated preferences in Firefox versions earlier than 643 57 got removed. 644 645- [webdriver crate] upgraded to 0.36.0. 646 647### Fixed 648 649- Force use of IPv4 network stack. 650 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. 657 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. 662 663- On Unix systems (macOS, Linux), geckodriver falsely reported 664 non-executable files as valid binaries. 665 666- When stdout and stderr is redirected by geckodriver, a bug prevented 667 the redirections from taking effect. 668 669 6700.20.1 (2018-04-06) 671------------------- 672 673### Fixed 674 675- Avoid attempting to kill Firefox process that has stopped. 676 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. 681 682 The regression should not have caused any functional problems, but 683 the termination cause and the exit status are now reported correctly. 684 685 6860.20.0 (2018-03-08) 687------------------- 688 689### Added 690 691- New `--jsdebugger` flag to open the [Browser Toolbox] when Firefox 692 launches. This is useful for debugging Marionette internals. 693 694- Introduced the temporary, boolean capability 695 `moz:useNonSpecCompliantPointerOrigin` to disable the WebDriver 696 conforming behavior of calculating the Pointer Origin. 697 698### Changed 699 700- HTTP status code for the [`StaleElementReference`] error changed 701 from 400 (Bad Request) to 404 (Not Found). 702 703- Backtraces from geckodriver no longer substitute for missing 704 Marionette stacktraces. 705 706- [webdriver crate] upgraded to 0.35.0. 707 708### Fixed 709 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. 712 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. 718 719- Grapheme clusters are now accepted as input for keyboard input 720 to actions. 721 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. 726 727 Thanks to Greg Fraley for fixing this bug. 728 729- Improved error messages for malformed capability values. 730 731 7320.19.1 (2017-10-30) 733------------------- 734 735### Changed 736 737- Search suggestions in the location bar turned off as not to 738 trigger network connections 739 740- Block addons incompatible with E10s 741 742### Fixed 743 744- Marionette stacktraces are now correctly propagated 745 746- Some error messages have been clarified 747 748### Removed 749 750- Removed obsolete `socksUsername` and `socksPassword` proxy 751 configuration keys because neither were picked up or recognised 752 753 7540.19.0 (2017-09-16) 755------------------- 756 757Note that with geckodriver 0.19.0 the following versions are recommended: 758- Firefox 55.0 (and greater) 759- Selenium 3.5 (and greater) 760 761### Added 762 763- Added endpoint: 764 - POST `/session/{session id}/window/minimize` for the [Minimize Window] 765 command 766 767- Added preference `extensions.shield-recipe-client.api_url` to disable 768 shield studies which could unexpectedly change the behavior of Firefox 769 770- Introduced the temporary, boolean capability `moz:webdriverClick` to 771 enable the WebDriver conforming behavior of the [Element Click] command 772 773- Added crashreporter environment variables to better control the browser 774 in case of crashes 775 776- Added preference `dom.file.createInChild` set to true to allow file 777 object creation in content processes 778 779### Changed 780 781- Log all used application arguments and not only `-marionette` 782 783- Early abort connection attempts to Marionette if the Firefox process 784 closed unexpectetly 785 786- Removed deprecated `socksProxyVersion` in favor of `socksVersion` 787 788- Removed `ftpProxyPort`, `httpProxyPort`, `sslProxyPort`, and 789 `socksProxyPort` because _ports_ have to be set for `ftpProxy`, 790 `httpProxy`, `sslProxy`, and `socksProxy` using ":<PORT>" 791 792- The `proxyType` `noproxy` has been replaced with `direct` in accordance 793 with recent WebDriver specification changes 794 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 798 799- Mapped the [`FullscreenWindow`] to the correct Marionette command 800 801- To make sure no browser process is left behind when the [`NewSession`] 802 fails, the process is closed immediately now 803 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]) 806 807- [webdriver crate] upgraded to version 0.31.0 808 809- [mozrunner crate] upgraded to version 0.5.0 810 811### Removed 812 813- Removed the following obsolete preferences for Firefox: 814 - `browser.safebrowsing.enabled` 815 - `browser.safebrowsing.forbiddenURIs.enabled` 816 - `marionette.defaultPrefs.port` 817 - `marionette.logging` 818 819 8200.18.0 (2017-07-10) 821------------------- 822 823### Changed 824 825- [`RectResponse`] permits returning floats for `width` and `height` 826 fields 827 828- New type [`CookieResponse`] for the [`GetNamedCookie`] command returns 829 a single cookie, as opposed to an array of a single cookie 830 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`] 834 835- geckodriver now recommends Firefox 53 and greater 836 837- Version information (`--version`) contains the hash from from the 838 commit used to build geckodriver 839 840- geckodriver version logged on startup 841 842- [webdriver crate] upgraded to version 0.27.0 843 844- [mozrunner crate] upgraded to version 0.4.1 845 846### Fixed 847 848- The [`SetTimeouts`] command maps to the Marionette `setTimeouts` 849 command, which makes geckodriver compatible with Firefox 56 and greater 850 851- Linux x86 (i686-unknown-linux-musl) builds are fixed 852 853 8540.17.0 (2017-06-09) 855------------------- 856 857### Added 858 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) 866 867### Changed 868 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 872 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 876 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 881 882### Fixed 883 884- The [SetWindowRect] command now returns the [WindowRectResponse] 885 when it is done 886 887- Use ASCII versions of array symbols to properly display them in the 888 Windows command prompt 889 890- Use [`SessionNotCreated`] error instead of [`UnknownError`] if there 891 is no current session 892 893 8940.16.1 (2017-04-26) 895------------------- 896 897### Fixed 898 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)) 902 903- Session is now ended when closing the last Firefox window (fixes 904 [#613](https://github.com/mozilla/geckodriver/issues/613)) 905 906 9070.16.0 (2017-04-21) 908------------------- 909 910Note that geckodriver v0.16.0 is only compatible with Selenium 3.4 911and greater. 912 913### Added 914 915- Support for WebDriver-conforming [New Session] negotiation, with 916 `desiredCapabilities`/`requiredCapabilities` negotiation as fallback 917 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] 921 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 927 928### Removed 929 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` 939 940### Changed 941 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 945 946- [`CookieResponse`] and [`CloseWindowResponse`] fixed to be properly 947 wrapped in a `value` field, like other responses 948 949- Allow negative numbers for `x` and `y` fields in `pointerMove` action 950 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 956 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 963 964- Remove default preference that disables unsafe CPOW checks 965 966- WebDriver library updated to 0.25.2 967 968### Fixed 969 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) 973 974- Recognise `sslProxy` and `sslProxyPort` entries in the proxy 975 configuration object (fixed by [Jason Juang]) 976 977- Fix “`httpProxyPort` was not an integer” error (fixed by [Jason 978 Juang]) 979 980- Fix broken unmarshaling of _Get Timeouts_ response format from Firefox 981 52 and earlier (fixed by [Jason Juang]) 982 983- Allow preferences in [`moz:firefoxOptions`] to be both positive- and 984 negative integers (fixed by [Jason Juang]) 985 986- Allow IPv6 hostnames in the proxy configuration object 987 988- i686-unknown-linux-musl (Linux 32-bit) build fixed 989 990- Log messages from other Rust modules are now ignored 991 992- Improved log messages to the HTTPD 993 994 9950.15.0 (2017-03-08) 996------------------- 997 998### Added 999 1000- Added routing and parsing for the [Get Timeouts] command 1001 1002### Changed 1003 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 1007 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 1011 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 1014 1015- WebDriver library updated to 0.23.0 1016 1017### Fixed 1018 1019- Aligned the data structure accepted by the [Set Timeouts] command with 1020 the WebDriver specification 1021 1022 10230.14.0 (2017-01-31) 1024------------------- 1025 1026### Changed 1027 1028- Firefox process is now terminated and session ended when the last 1029 window is closed 1030 1031- WebDriver library updated to version 0.20.0 1032 1033### Fixed 1034 1035- Stacktraces are now included when the error originates from within 1036 the Rust stack 1037 1038- HTTPD now returns correct response headers for `Content-Type` and 1039 `Cache-Control` thanks to [Mike Pennisi] 1040 1041 10420.13.0 (2017-01-06) 1043------------------- 1044 1045### Changed 1046 1047- When navigating to a document with an insecure- or otherwise invalid 1048 TLS certificate, an [insecure certificate] error will be returned 1049 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 1053 1054- Window position coordinates are allowed to be negative numbers, to 1055 cater for maximised window positioning on Windows 1056 1057- WebDriver library updated to version 0.18.0 1058 1059### Fixed 1060 1061- Check for single-character key codes in action sequences now counts 1062 characters instead of bytes 1063 1064 10650.12.0 (2017-01-03) 1066------------------- 1067 1068### Added 1069 1070- Added [Take Element Screenshot] command 1071 1072- Added new [Status] command 1073 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 1077 1078- Implemented routing for [new actions API](Actions), but it too is not 1079 yet fully implemented in Marionette 1080 1081### Changed 1082 1083- [Synced Firefox 1084 preferences](https://github.com/mozilla/geckodriver/commit/2bfdc3ec8151c427a6a75a6ba3ad203459540495) 1085 with those used in Mozilla automation 1086 1087- Default log level for debug builds of Firefox, which used to be `DEBUG`, 1088 changed to `INFO`-level 1089 1090- WebDriver library dependency upgraded to 0.17.1 1091 1092- Using _session not created_ error when failing to start session 1093 1094- geckodriver will exit with exit code 69 to indicate that the port 1095 is unavailable 1096 1097### Fixed 1098 1099- Improved logging when starting Firefox 1100 1101- Reverted to synchronous logging, which should address cases of 1102 inconsistent output when failing to bind to port 1103 1104- Clarified in README that geckodriver is not supported on Windows XP 1105 1106- Added documentation of supported capabilities to [README] 1107 1108- Included capabilities example in the [README] 1109 1110 11110.11.1 (2016-10-10) 1112------------------- 1113 1114### Fixed 1115 1116- Version number in binary now reflects the release version 1117 1118 11190.11.0 (2016-10-10) 1120------------------- 1121 1122### Added 1123 1124- Introduced continuous integration builds for Linux- and Windows 32-bit 1125 binaries 1126 1127- Added commands for setting- and getting the window position 1128 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 1135 1136- Introduced a [`moz:firefoxOptions`] capability to customise a Firefox 1137 session: 1138 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 1142 1143 - The `log` capability takes a dictionary such as `{log: "trace"}` 1144 to enable trace level verbosity in Gecko 1145 1146 - The `prefs` capability lets you define Firefox preferences through 1147 capabilities 1148 1149- Re-introduced the `--webdriver-port` argument as a hidden alias to 1150 `--port` 1151 1152### Changed 1153 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] 1157 1158- Removed `--no-e10s` flag, and geckodriver will from now rely on the 1159 Firefox default multiprocessing settings (override using preferences) 1160 1161- Disable pop-up blocker in the default profile by @juangj 1162 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) 1166 1167- Replaced _env_logger_ logging facility with the _slog_ package, 1168 causing the `RUST_LOG` environment variable to no longer have any affect 1169 1170- Updated the WebDriver Rust library to version 0.15 1171 1172### Fixed 1173 1174- Corrected link to repository in Cargo metadata 1175 1176- Verbosity shorthand flag `-v[v]` now works again, following the 1177 replacement of the argument parsing library in the previous release 1178 1179- When the HTTPD fails to start, errors are propagated to the user 1180 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 1184 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 1188 1189 11900.10.0 (2016-08-02) 1191------------------- 1192 1193### Changed 1194 1195- Use multi-process Firefox (e10s) by default, added flag `--no-e10s` 1196 to disable it and removed `--e10s` flag 1197 1198- Disable autofilling of forms by default by [Sven Jost] 1199 1200- Replace _argparse_ with _clap_ for arguments parsing 1201 1202### Fixed 1203 1204- Attempt to deploy a single file from Travis when making a release 1205 1206- Grammar fix in [README] 1207 1208 12090.9.0 (2016-06-30) 1210------------------ 1211 1212### Added 1213 1214- Add ability to use `firefox_binary` capability to define location of 1215 Firefox to use 1216 1217- Automatically detect the default Firefox path if one is not given 1218 1219- Cross-compile to Windows and ARMv7 (HF) in CI 1220 1221- Add Musl C library-backed static binaries in CI 1222 1223- Add `-v`, `-vv`, and `--log LEVEL` flags to increase Gecko verbosity 1224 1225- Add Get Element Property endpoint 1226 1227- Add new `--version` flag showing copying information and a link to 1228 the repository 1229 1230### Changed 1231 1232- Now connects to a Marionette on a random port by default 1233 1234- Update webdriver-rust library dependency 1235 1236- Migrated to use Travis to deploy new releases 1237 1238- Reduced amount of logging 1239 1240- Introduced a changelog (this) 1241 1242 12430.8.0 (2016-06-07) 1244------------------ 1245 1246### Added 1247 1248- Allow specifying array of arguments to the Firefox binary through the 1249 `firefox_args` capability 1250 1251- Pass parameters with [New Session] command 1252 1253### Changed 1254 1255- Change product name to _geckodriver_ 1256 1257- Make README more exhaustive 1258 1259- Quit Firefox when deleting a session 1260 1261- Update webdriver-rust library 1262 1263- Update dependencies 1264 1265### Fixed 1266 1267- Fix tests 1268 1269- FIx typo in error message for parsing errors 1270 1271 12720.7.1 (2016-04-27) 1273------------------ 1274 1275### Added 1276 1277- Add command line flag for using e10s enabled Firefox by [Kalpesh 1278 Krishna] 1279 1280- Allow providing custom profiles 1281 1282### Changed 1283 1284- Allow binding to an IPv6 address by [Jason Juang] 1285 1286- By default, connect to host-agnostic localhost by [Jason Juang] 1287 1288- Make `GeckoContextParameters` public 1289 1290- Update dependencies 1291 1292### Fixed 1293 1294- Squash rustc 1.6 warnings by using `std::thread::sleep(dur: Duration)` 1295 1296 12970.6.2 (2016-01-20) 1298------------------ 1299 1300### Added 1301 1302- Add LICENSE file from [Joshua Burning] 1303 1304- Schedule builds in CI on pushes and pull requests 1305 1306### Changed 1307 1308- Enable CPOWs in Marionette 1309 1310 13110.6.0 (2016-01-12) 1312------------------ 1313 1314### Added 1315 1316- Add Get Page Source endpoint 1317 1318### Changed 1319 1320- Handle arrays being sent from Marionette 1321 1322- Correct build steps in [README] 1323 1324- Update what properties are read from errors sent by Marionette 1325 1326- Update dependencies 1327 1328 13290.5.0 (2015-12-10) 1330------------------ 1331 1332### Changed 1333 1334- Update argparse dependency to use Cargo 1335 1336- Update to the latest version of the Marionette wire protocol 1337 1338- Update to latest webdriver-rust library 1339 1340- Update dependencies 1341 1342 13430.4.2 (2015-10-02) 1344------------------ 1345 1346### Changed 1347 1348- Skip compiling optional items in hyper 1349 1350 13510.4.1 (2015-10-02) 1352------------------ 1353 1354### Changed 1355 1356- Update webdriver-rust library 1357 1358- Update dependencies 1359 1360 13610.4.0 (2015-09-28) 1362------------------ 1363 1364### Added 1365 1366- Add command extensions for switching between content- and chrome 1367 contexts 1368 1369- Add more documentation from [Vlad Filippov] 1370 1371### Changed 1372 1373- Update Cargo.lock with new dependencies for building 1374 1375- Update for protocol updates that flatten commands 1376 1377- Update to new protocol error handling 1378 1379- Update for Marionette protocol version 3 changes 1380 1381- Strip any leading and trailing `{}` from the `sessionId` Marionette 1382 returns 1383 1384- Update dependencies 1385 1386### Fixed 1387 1388- Fix `GetCSSValue` message to send correct key `propertyName` 1389 1390- Fix example in documentation from @vladikoff 1391 1392 13930.3.0 (2015-08-17) 1394------------------ 1395 1396### Added 1397 1398- Add support for finding elements in subtrees 1399 1400 14010.2.0 (2015-05-20) 1402------------------ 1403 1404### Added 1405 1406- Extra debug messages 1407 1408- Add ability to set WebDriver port 1409 1410- Add support for getting the active element 1411 1412- Add support for `GetCookies` and `DeleteCookie`/`DeleteCookies` 1413 1414- Add preferences that switch off certain features not required for 1415 WebDriver tests 1416 1417### Changed 1418 1419- Make failing to communicate with Firefox a fatal error that closes 1420 the session 1421 1422- Shut down session only when losing connection 1423 1424- Better handling of missing command line flags 1425 1426- Poll for connection every 100ms rather than every 100s 1427 1428- Switch to string-based error codes 1429 1430- Switch webdriver-rust library dependency to be pulled from git 1431 1432- Update dependencies 1433 1434### Fixed 1435 1436- Handle null id for switching to frame more correctly 1437 1438 14390.1.0 (2015-04-09) 1440------------------ 1441 1442### Added 1443 1444- Add proxy for converting WebDriver HTTP protocol to Marionette protocol 1445 1446- Add endpoints for modal dialogue support 1447 1448- Allow connecting to a running Firefox instance 1449 1450- Add explicit Cargo.lock file 1451 1452- Start Firefox when we get a [NewSession] command 1453 1454- Add flag parsing and address parsing 1455 1456- Add basic error handling 1457 1458### Changed 1459 1460- Update for Rust beta 1461 1462- Switch to new IO libraries 1463 1464- Pin webdriver-rust commit so we can upgrade rustc versions independently 1465 1466- Set preferences when starting Firefox 1467 1468- Improve some error messages 1469 1470- Re-enable environment variable based logging 1471 1472### Fixed 1473 1474- Fix Get Element Rect command to return floats instead of integers 1475 1476- Fix passing of web elements to Switch To Frame command 1477 1478- Fix serialisation of script commands 1479 1480- Fix assorted bugs found by the Selenium test suite 1481 1482- Fix conversion of Find Element/Find Elements responses from Marionette 1483 to WebDriver 1484 1485- Fixed build by updating Cargo.lock with new dependencies for building 1486 1487- Squash compile warnings 1488 1489 1490 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 1503 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 1527 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 1535 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 1540 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 1557 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 1570