Selenium.WebDriver.GeckoDriver 0.35.0

dotnet add package Selenium.WebDriver.GeckoDriver --version 0.35.0                
NuGet\Install-Package Selenium.WebDriver.GeckoDriver -Version 0.35.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Selenium.WebDriver.GeckoDriver" Version="0.35.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Selenium.WebDriver.GeckoDriver --version 0.35.0                
#r "nuget: Selenium.WebDriver.GeckoDriver, 0.35.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Selenium.WebDriver.GeckoDriver as a Cake Addin
#addin nuget:?package=Selenium.WebDriver.GeckoDriver&version=0.35.0

// Install Selenium.WebDriver.GeckoDriver as a Cake Tool
#tool nuget:?package=Selenium.WebDriver.GeckoDriver&version=0.35.0                

NuGet package - Selenium WebDriver GeckoDriver

NuGet Package

What's this?

This NuGet package install Gecko Driver for Selenium WebDriver into your Unit Test Project.

"geckodriver(.exe)" does not appear in Solution Explorer, but it is copied to the output folder from the package folder when the build process.

NuGet package restoring ready, and no need to commit "geckodriver(.exe)" binary into source code control repository.

Warning
Since Selenium WebDriver version 4.6 was released in November 2022 or later, it has contained "Selenium Manager", which will automatically download the most suitable version and platform WebDriver executable file. So now, you can run applications that use Selenium and manipulates web browsers without this package. However, due to compatibility and some offline scenarios, we intend to keep this package for the time being.

How to install?

For example, at the package manager console on Visual Studio, enter the following command.

PM> Install-Package Selenium.WebDriver.GeckoDriver

Cross-platform building and publishing

By default - it depends on the OS running the build process

By default, the platform type of the web driver file copied to the output folder depends on the OS running the build process.

  • When you build the project which references the NuGet package of geckodriver on 32bit Windows OS, win32 version of geckodriver will be copied to the output folder.
  • When you build the project which references the NuGet package of geckodriver on 64bit Windows OS, win64 version of geckodriver will be copied to the output folder.
  • When you build it on macOS on Intel CPU hardware, macOS x64 version of geckodriver will be copied to the output folder.
  • When you build it on macOS on Apple CPU hardware, macOS Arm64 version of geckodriver will be copied to the output folder.
  • When you build it on any Linux distributions, Linux x64 version of geckodriver will be copied to the output folder.

Method 1 - Specify "Runtime Identifier"

When you specify the "Runtime Identifier (RID)" explicitly, the platform type of the driver file is the same to the RID which you specified. (it doesn't depends on the which OS to use for build process.)

You can specify RID as a MSBuild property in a project file,

<PropertyGroup>
  <RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>

or, as a command-line -r option for dotnet build command.

> dotnet build -r:osx-x64
  • When the RID that starts with "win" and contains "x86" is specified, win32 version of geckodriver will be copied to the output folder.
  • When the RID that starts with "win" and contains "x64" is specified, win64 version of geckodriver will be copied to the output folder.
  • When the RID that starts with "osx" and ends with "x64" is specified, macOS x64 version of geckodriver will be copied to the output folder.
  • When the RID that starts with "osx" and ends with "arm64" is specified, macOS Arm64 version of geckodriver will be copied to the output folder.
  • When the RID that starts with "linux" is specified, Linux x64 version of geckodriver will be copied to the output folder.

If you specify another pattern of RID like "ubuntu.18.04-x64", the platform type of the web driver file which will be copied to the output folder depends on the OS running the build process. (default behavior.)

Method 2 - Specify "GeckoDriverPlatform" msbuild property

You can control which platform version of geckodriver will be copied by specifying "GeckoDriverPlatform" MSBuild property.

"GeckoDriverPlatform" MSBuild property can take one of the following values:

  • "win32"
  • "win64"
  • "mac64"
  • "mac64arm"
  • "linux64"

You can specify "GeckoDriverPlatform" MSBuild property in a project file,

<PropertyGroup>
  <GeckoDriverPlatform>win32</GeckoDriverPlatform>
</PropertyGroup>

or, command-line -p option for dotnet build command.

> dotnet build -p:GeckoDriverPlatform=mac64

The specifying "GeckoDriverPlatform" MSBuild property is the highest priority method to control which platform version of geckodriver will be copied.

If you run the following command on Windows OS,

> dotnet build -r:ubuntu.18.04-x64 -p:GeckoDriverPlatform=mac64

The driver file of macOS x64 version will be copied to the output folder.

How to include the driver file into published files?

"geckodriver(.exe)" isn't included in published files on default configuration. This behavior is by design.

If you want to include "geckodriver(.exe)" into published files, please define _PUBLISH_GECKODRIVER compilation symbol.

define _PUBLISH_GECKODRIVER compilation symbol

Another way, you can define PublishGeckoDriver property with value is "true" in MSBuild file (.csproj, .vbproj, etc...) to publish the driver file instead of define compilation symbol.

  <Project ...>
    ...
    <PropertyGroup>
      ...
      <PublishGeckoDriver>true</PublishGeckoDriver>
      ...
    </PropertyGroup>
...
</Project>

You can also define PublishGeckoDriver property from the command line -p option for dotnet publish command.

> dotnet publish -p:PublishGeckoDriver=true
Note

PublishGeckoDriver MSBuild property always override the condition of define _PUBLISH_GECKODRIVER compilation symbol or not. If you define PublishGeckoDriver MSBuild property with false, then the driver file isn't included in publish files whenever define _PUBLISH_GECKODRIVER compilation symbol or not.

Appendix

Where is geckodriver.exe saved to?

geckodriver(.exe) exists at
" {solution folder} /packages/Selenium.WebDriver.GeckoDriver. {ver} /driver/ {platform}"
folder.

 {Solution folder}/
  +-- packages/
  |   +-- Selenium.WebDriver.GeckoDriver.{version}/
  |       +-- driver/
  |       |   +-- win32
  |       |       +-- geckodriver.exe
  |       |   +-- win64
  |       |       +-- geckodriver.exe
  |       |   +-- mac64
  |       |       +-- geckodriver
  |       |   +-- mac64arm
  |       |       +-- geckodriver
  |       |   +-- linux64
  |       |       +-- geckodriver
  |       +-- build/
  +-- {project folder}/
      +-- bin/
          +-- Debug/
          |   +-- geckodriver(.exe) (copy from above by build process)
          +-- Release/
              +-- geckodriver(.exe) (copy from above by build process)

And package installer configure MSBuild task such as .csproj to copy geckodriver(.exe) into the output folder during the build process.

License

The build script (.targets file) in this NuGet package is licensed under The Unlicense.

The binary files of GeckoDriver are licensed under the Mozilla Public License.

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (24)

Showing the top 5 NuGet packages that depend on Selenium.WebDriver.GeckoDriver:

Package Downloads
Selenium.WebDriver.GeckoDriver.Win32

[Superseded] This package became metadata only package for bootstrap "Selenium.WebDriver.GeckoDriver" x-plat NuGet package. Please consider to install "Selenium.WebDriver.GeckoDriver" NuGet package directly instead of this. ---- Install Gecko Driver(Win32) for Selenium WebDriver into your Unit Test Project. "geckodriver.exe" is copied to bin folder from package folder when the build process. NuGet package restoring ready, and no need to commit "geckodriver.exe" binary into source code control repository. / The MSBuild script that contained this package is free and unencumbered software released into the public domain. / "geckodriver.exe" is licensed under the Mozilla Public License Version 2.0.

Miru.PageTesting.Firefox

Package Description

Ocaramba

Framework to automate tests using Selenium WebDriver

Ministry.WebDriver.Extensions

A basic styled framework to build a structured page or component model for writing UI Automation tests.

Selenium.QuickStart

QuickStart your web testing automation focusing only on what is important, being productive. Once you set your solution to x86 or x64, inherit a class and change your app.config as you want, this will provide an automatic Selenium WebDriver setup and session management, ExtentReports (Including Klov) to save test execution results, screenshot, video recording and email sending functionalities built in and ready to use with parametrizations you can set through an app.config. For installing this package successfully, your solution should be set to x86 instead of AnyCPU.

GitHub repositories (5)

Showing the top 5 popular GitHub repositories that depend on Selenium.WebDriver.GeckoDriver:

Repository Stars
CodeMazeBlog/CodeMazeGuides
The main repository for all the Code Maze guides
featurist/coypu
Intuitive, robust browser automation for .Net
cmu-sei/GHOSTS
GHOSTS is a realistic user simulation framework for cyber experimentation, simulation, training, and exercise
Accenture/Ocaramba
C# Framework to automate tests using Selenium WebDriver
Warewolf-ESB/Warewolf
Effortless Microservice Design and Integration. This repository includes the code-base for the Warewolf Studio and Server.
Version Downloads Last updated
0.35.0 126,612 8/6/2024
0.34.0 330,054 1/3/2024
0.33.0 605,298 4/3/2023
0.32.2 126,881 2/8/2023
0.32.1 8,926 2/2/2023
0.32.0 282,043 10/13/2022
0.31.0.1 591,691 5/28/2022
0.31.0 218,215 4/15/2022
0.30.0.1 734,068 11/3/2021
0.30.0 195,707 9/17/2021
0.29.1 449,426 4/9/2021
0.29.0 333,776 1/14/2021
0.28.0 483,501 11/4/2020
0.27.0 265,478 7/29/2020
0.26.0.5 31,100 7/15/2020
0.26.0.5-beta 2,215 7/12/2020
0.26.0.3 40,105 6/28/2020
0.26.0.3-beta 223,560 5/25/2020
0.26.0.1 216,043 4/3/2020
0.26.0 578,429 10/13/2019
0.25.0 35,737 9/10/2019
0.24.0.1 13,720 9/3/2019
0.24.0 332,433 1/29/2019
0.23.0.3 42,737 11/21/2018
0.23.0.1 3,204 11/17/2018
0.23.0 45,714 10/4/2018
0.22.0 379,960 9/16/2018
0.21.0 56,316 6/18/2018
0.20.1 81,610 4/8/2018
0.20.0 77,266 3/13/2018
0.19.1 60,276 11/1/2017
0.19.0 9,434 10/17/2017
0.18.0 26,845 7/11/2017
0.17.0 117,808 6/9/2017
0.16.1 50,707 4/26/2017
0.16.0 3,587 4/24/2017
0.15.0.4 9,063 4/14/2017
0.15.0.3-beta 2,976 3/21/2017
0.15.0.2-beta 2,061 3/15/2017
0.15.0.1-beta 2,910 3/8/2017
0.14.0.1-beta 3,094 3/3/2017

v.0.35.0
- Gecko Driver 0.35.0 release

To see all the change logs, please visit the following URL.
- https://github.com/jsakamoto/nupkg-selenium-webdriver-geckodriver/blob/master/RELEASE-NOTES.txt