A browser automation framework and ecosystem.

Overview

Selenium

Python workflow Ruby workflow JavaScript workflow Java workflow

Selenium

Selenium is an umbrella project encapsulating a variety of tools and libraries enabling web browser automation. Selenium specifically provides an infrastructure for the W3C WebDriver specification — a platform and language-neutral coding interface compatible with all major web browsers.

The project is made possible by volunteer contributors who've generously donated thousands of hours in code development and upkeep.

Selenium's source code is made available under the Apache 2.0 license.

Documentation

Narrative documentation:

API documentation:

Pull Requests

Please read CONTRIBUTING.md before submitting your pull requests.

Requirements

  • Bazelisk, a Bazel wrapper that automatically downloads the version of Bazel specified in .bazelversion file and transparently passes through all command-line arguments to the real Bazel binary.
  • The latest version of the Java 11 OpenJDK
  • java and jar on the PATH (make sure you use java executable from JDK but not JRE).
    • To test this, try running the command javac. This command won't exist if you only have the JRE installed. If you're met with a list of command-line options, you're referencing the JDK properly.
  • Python 3.7+
  • python on the PATH
  • The Requests Library for Python: pip install requests
  • The tox automation project for Python: pip install tox
  • MacOS users should have the latest version of Xcode installed, including the command-line tools. The following command should work:
xcode-select --install
  • Windows users should have the latest version of Visual Studio command line tools and build tools installed
    • BAZEL_VS environment variable should point to the location of the build tools, e.g. C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
    • BAZEL_VC environment variable should point to the location of the command line tools, e.g. C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC
    • BAZEL_VC_FULL_VERSION environment variable should contain the version of the installed command line tools, e.g. 14.27.29110

Optional Requirements

  • Ruby 2.0

Internet Explorer Driver

If you plan to compile the IE driver, you also need:

The build will work on any platform, but the tests for IE will be skipped silently if you are not building on Windows.

Building

Bazel

Bazel was built by the fine folks at Google. Bazel manages dependency downloads, generates the Selenium binaries, executes tests, and does it all rather quickly.

More detailed instructions for getting Bazel running are below, but if you can successfully get the java and javascript folders to build without errors, you should be confident that you have the correct binaries on your system.

Before Building

Ensure that you have Firefox installed and the latest geckodriver on your $PATH. You may have to update this from time to time.

Common Build Targets

To build the most commonly-used modules of Selenium from source, execute this command from the root project folder:

bazel build java/...

If you have some extra time on your hands, you can run this command to get extra confidence that your build is successful. This will do a lot more work to build all the javascript artifacts:

bazel build java/... javascript/...

If you're making changes to the java/ or javascript/ folders in this project, and this command executes without errors, you should be able to create a PR of your changes. (See also CONTRIBUTING.md)

Build Details

  • Bazel files are called BUILD.bazel
  • crazyfun build files are called build.desc. This is an older build system, still in use in the project for Ruby bindings mostly.

The order the modules are built is determined by the build system. If you want to build an individual module (assuming all dependent modules have previously been built), try the following:

bazel test javascript/atoms:test

In this case, javascript/atoms is the module directory, test is a target in that directory's BUILD.bazel file.

As you see build targets scroll past in the log, you may want to run them individually.

Common Tasks (Bazel)

To build the bulk of the Selenium binaries from source, run the following command from the root folder:

bazel build java/... javascript/...

To build the grid deployment jar, run this command:

bazel build grid

To run tests within a particular area of the project, use the "test" command, followed by the folder or target. Tests are tagged with "small", "medium", or "large", and can be filtered with the --test_size_filters option:

bazel test --test_size_filters=small,medium java/...

Bazel's "test" command will run all tests in the package, including integration tests. Expect the test java/... to launch browsers and consume a considerable amount of time and resources.

Editing Code

Most of the team use either Intellij IDEA or VS.Code for their day-to-day editing. If you're working in IntelliJ, then we highly recommend installing the Bazel IJ plugin which is documented on its own site.

If you do use IntelliJ and the Bazel plugin, there is a project view checked into the tree in scripts/ij.bazelproject which will make it easier to get up running, and editing code :)

Tour

The codebase is generally segmented around the languages used to write the component. Selenium makes extensive use of JavaScript, so let's start there. Working on the JavaScript is easy. First of all, start the development server:

bazel run debug-server

Now, navigate to http://localhost:2310/javascript. You'll find the contents of the javascript/ directory being shown. We use the Closure Library for developing much of the JavaScript, so now navigate to http://localhost:2310/javascript/atoms/test.

The tests in this directory are normal HTML files with names ending with _test.html. Click on one to load the page and run the test.

Maven POM files

Here is the public Selenium Maven repository.

Build Output

bazel makes a top-level group of directories with the bazel- prefix on each directory.

Help with go

More general, but basic, help for go

./go --help

go is just a wrapper around Rake, so you can use the standard commands such as rake -T to get more information about available targets.

Maven per se

If it is not clear already, Selenium is not built with Maven. It is built with bazel, though that is invoked with go as outlined above, so you do not have to learn too much about that.

That said, it is possible to relatively quickly build Selenium pieces for Maven to use. You are only really going to want to do this when you are testing the cutting-edge of Selenium development (which we welcome) against your application. Here is the quickest way to build and deploy into your local maven repository (~/.m2/repository), while skipping Selenium's own tests.

./go maven-install

The maven jars should now be in your local ~/.m2/repository.

Useful Resources

Refer to the Build Instructions wiki page for the last word on building the bits and pieces of Selenium.

Running Browser Tests on Linux

In order to run Browser tests, you first need to install the browser-specific drivers, such as geckodriver, chromedriver, or edgedriver. These need to be on your PATH.

By default, Bazel runs these tests in your current X-server UI. If you prefer, you can alternatively run them in a virtual or nested X-server.

  1. Run the X server Xvfb :99 or Xnest :99
  2. Run a window manager, for example, DISPLAY=:99 jwm
  3. Run the tests you are interested in:
bazel test --test_env=DISPLAY=:99 //java/... --test_tag_filters=chrome

An easy way to run tests in a virtual X-server is to use Bazel's --run_under functionality:

bazel test --run_under="xvfb-run -a" //java/... --test_tag_filters=chrome

Bazel Installation/Troubleshooting

MacOS

bazelisk

Bazelisk is a Mac-friendly launcher for Bazel. To install, follow these steps:

brew tap bazelbuild/tap && \
brew uninstall bazel; \
brew install bazelbuild/tap/bazelisk

Xcode

If you're getting errors that mention Xcode, you'll need to install the command-line tools.

Bazel for Mac requires some additional steps to configure properly. First things first: use the Bazelisk project (courtesy of philwo), a pure golang implementation of Bazel. In order to install Bazelisk, first verify that your Xcode will cooperate: execute the following command:

xcode-select -p

If the value is /Applications/Xcode.app/Contents/Developer/, you can proceed with bazelisk installation. If, however, the return value is /Library/Developer/CommandLineTools/, you'll need to redirect the Xcode system to the correct value.

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/
sudo xcodebuild -license

The first command will prompt you for a password. The second step requires you to read a new Xcode license, and then accept it by typing "agree".

(Thanks to this thread for these steps)

Comments
  • java.util.concurrent.TimeoutException thrown at random netty read timeouts with RemoteWebDriver

    java.util.concurrent.TimeoutException thrown at random netty read timeouts with RemoteWebDriver

    🐛 Bug Report

    Netty at random times gets a read timeout at. This happens at different selenium commands ( for example: WebDriver.switchTo().defaultContent, WebElement.click, WebDriver.switchTo().window, WebElement.sendKeys, WebDriver.get, Alert.accept ) and at random in a quite small percentage chance (<1% test cases).

    To Reproduce

    I don't have specific steps to reproduce. When our CI runs our test suite of thousands of tests run, about 10 fails at random due to this timeout. I could not reproduce by doing a simple long loop with a few commands on my development workstation.

    Timeout details

    This timeout always occurs at:

    Caused by: java.util.concurrent.TimeoutException
    	at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1886)
    	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2021)
    	at org.asynchttpclient.netty.NettyResponseFuture.get(NettyResponseFuture.java:206)
    	at org.openqa.selenium.remote.http.netty.NettyHttpHandler.makeCall(NettyHttpHandler.java:65)
    

    I could confirm that it took 3 minutes there, confirming that it is due to the default 3 minutes read timeout the selenium configures the netty with. But the commands that are timing outs would normally run very fast, much less than one second.

    Trying the code below in a method called probably thousands times by my test suite, it failed entering the catch. But after it called again driver.switchTo().defaultContent() at the end of the code below it worked. So it seems that although the read timeout happens in netty, it still works normally afterwards.

    try
    {
    driver.switchTo().defaultContent();
    }
    catch (TimeoutException e)
    {
    // this should never happen, but started happening at random after updating to selenium 4
    // output information to help troubleshoot
    System.err.println("TimeoutException thrown while trying to go to defaultContent (stack below). Trying again...");
    e.printStackTrace();
    
    try
    {
    Thread.sleep(5000);
    }
    catch (InterruptedException e1)
    {
    }
    
    driver.switchTo().defaultContent();
    }
    

    In this case, the stack trace got by the e.printStackTrace() above was:

    org.openqa.selenium.TimeoutException: java.util.concurrent.TimeoutException
    Build info: version: '4.0.0-beta-3', revision: '5d108f9a67'
    System info: host: '51e5404d333b', ip: '172.18.0.7', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-1127.19.1.el7.x86_64', java.version: '11.0.1'
    Driver info: org.openqa.selenium.remote.RemoteWebDriver
    Command: [a5e3bf25-ba72-4023-b219-76406cf58660, switchToFrame {id=null}]
    Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 88.0, javascriptEnabled: true, moz:accessibilityChecks: false, moz:buildID: 20210415204500, moz:debuggerAddress: localhost:46562, moz:geckodriverVersion: 0.29.0, moz:headless: false, moz:processID: 9286, moz:profile: /tmp/rust_mozprofileQJRwQP, moz:shutdownTimeout: 60000, moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: true, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, platformVersion: 3.10.0-1127.19.1.el7.x86_64, rotatable: false, se:cdp: ws://172.18.0.3:4444/sessio..., se:cdpVersion: 85, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify}
    Session ID: a5e3bf25-ba72-4023-b219-76406cf58660
    	at org.openqa.selenium.remote.http.netty.NettyHttpHandler.makeCall(NettyHttpHandler.java:71)
    	at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)
    	at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:56)
    	at org.openqa.selenium.remote.http.netty.NettyHttpHandler.execute(NettyHttpHandler.java:51)
    	at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)
    	at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:56)
    	at org.openqa.selenium.remote.http.netty.NettyClient.execute(NettyClient.java:103)
    	at org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:55)
    	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:181)
    	at org.openqa.selenium.remote.TracedCommandExecutor.execute(TracedCommandExecutor.java:39)
    	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:619)
    	at org.openqa.selenium.remote.RemoteWebDriver$RemoteTargetLocator.defaultContent(RemoteWebDriver.java:1097)
    	(...)
    Caused by: java.util.concurrent.TimeoutException
    	at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1886)
    	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2021)
    	at org.asynchttpclient.netty.NettyResponseFuture.get(NettyResponseFuture.java:206)
    	at org.openqa.selenium.remote.http.netty.NettyHttpHandler.makeCall(NettyHttpHandler.java:65)
    	... 38 more
    

    Environment

    OS: Docker containers inside a CentOS Browser: RemoteWebDriver using Firefox in selenium/standalone-firefox:4.0.0-beta-3-20210426 docker image. Also tried the selenium/standalone-firefox:4.0.0-beta-4-prerelease-20210527 docker image, but the same thing happened. Browser Driver version: RemoteWebDriver from selenium-java 4.0.0-beta-3 Language Bindings version: Java 4.0.0-beta-3 The RemoteWebDriver runs in a container that is running in the same docker host as the browser container. So all network between them is only logical in the same machine. Previously we were using Selenium 2.52, in the same docker host, and never happened anything similar to such timeout.

    Do you have any tips about what I can try to fix it or investigate more about this?

    C-grid C-java 
    opened by rcesarlumis 162
  • Click button does not work after upgrade to selenium 2.48.0

    Click button does not work after upgrade to selenium 2.48.0

    Doing test automation on a Ember.js web application: I have a button which is covered by a <div> with a cooky notification. It looks something like this:

    image

    With Selenium 2.47.1 clicking on that button works as expected in Firefox. With Selenium 2.48.0 clicking this button does not work in Firefox, although there is no exception or error. It's like selenium thinks that the click worked properly but actually the click had no effect. Here the Robot Framework log:

    image

    The structure of HTML is something like this:

    <header>...</header>
    <main>
      <div>
        ::before
        <form>
          <button>Last check</button>
        </form>
      ::after
      </div>
    </main>
    <div>
      <div class="cookie-notification">
        ::before
        <a href="http://...">Close</a>
        ::after
      </div>
    </div>
    

    Just for comparison - executing the same click with Selenium 2.47.1 in Chrome results in a WebDriverException:

    image

    Traceback (most recent call last):
      File "<string>", line 2, in click_button
      File "C:\Python27\lib\site-packages\Selenium2Library\keywords\keywordgroup.py", line 15, in _run_on_failure_decorator
        return method(*args, **kwargs)
      File "C:\Python27\lib\site-packages\Selenium2Library\keywords\_formelement.py", line 316, in click_button
        element.click()
      File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 69, in click
        self._execute(Command.CLICK_ELEMENT)
      File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 448, in _execute
        return self._parent.execute(command, params)
      File "C:\Python27\lib\site-packages\Selenium2Library\webdrivermonkeypatches.py", line 11, in execute
        result = self._base_execute(driver_command, params)
      File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 196, in execute
        self.error_handler.check_response(response)
      File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 181, in check_response
        raise exception_class(message, screen, stacktrace)
    

    System configuration I:

    • Microsoft Windows 7 64 bit
    • Firefox 41.0.2
    • Selenium 2.47.1
    • selenium2library 1.7.4
    • Robot Framework 2.9.2 ==> click <button> works

    System configuration II:

    • same as configuration I but
    • Google Ghrome Version 46.0.2490.80 m ==> click <button> does not work, WebDriverException

    System configuration III:

    • same as configuration I but
    • Selenium 2.48.0 ==> click <button> does not work, no error/exception
    D-firefox 
    opened by Tset-Noitamotua 115
  • Selenium 3.4.0 Unable to find matching capabilities

    Selenium 3.4.0 Unable to find matching capabilities

    OS: Ubuntu Selenium Version: 3.4.0 Browser: Firefox 45 Geckodriver: 0.16.0

    Hi, After updating to Selenium 3.4.0 it can't start Firefox:

    File "/root/venv/3.5/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 152, in __init__
        keep_alive=True)
      File "/root/venv/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 98, in __init__
        self.start_session(desired_capabilities, browser_profile)
      File "/root/venv/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 185, in start_session
        response = self.execute(Command.NEW_SESSION, parameters)
      File "/root/venv/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 249, in execute
        self.error_handler.check_response(response)
      File "/root/venv/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities
    

    -------- Using Firefox 45 due to click not working on newer versions (https://github.com/mozilla/geckodriver/issues/322) --------

    opened by jricardo27 98
  • Grid does not handle w3c capabilities correctly

    Grid does not handle w3c capabilities correctly

    Meta -

    OS: Mac OS El Capitan 10.11.6

    Selenium Version: 3.3.3

    Browser: Firefox

    Browser Version: 52.0.2 (64-bit)

    Expected Behavior -

    In python, the following should create a Remote driver:

    from selenium import webdriver

    cap = {'platform': 'ANY', 'browserName': 'firefox', 'version': '', 'marionette': True, 'javascriptEnabled': True} driver = webdriver.Remote(command_executor='http://<my_server_ip>:4444/wd/hub', desired_capabilities=cap)

    (note: this works with selenium 2.53.6 with python2.7 when executed against the same server)

    Actual Behavior -

    Thows exception: KeyError: 'message'

    When I pdb into this I see the following response from the server:

    {'value': '{"status":13,"value":{"class":"java.lang.NullPointerException","stackTrace":[{"fileName":"HashMap.java","className":"java.util.HashMap","methodName":"putMapEntries","lineNumber":500},{"fileName":"HashMap.java","className":"java.util.HashMap","methodName":"putAll","lineNumber":784},{"fileName":"DesiredCapabilities.java","className":"org.openqa.selenium.remote.DesiredCapabilities","methodName":"\u003cinit\u003e","lineNumber":54},{"fileName":"RequestHandler.java","className":"org.openqa.grid.web.servlet.handler.RequestHandler","methodName":"process","lineNumber":104},{"fileName":"DriverServlet.java","className":"org.openqa.grid.web.servlet.DriverServlet","methodName":"process","lineNumber":83},{"fileName":"DriverServlet.java","className":"org.openqa.grid.web.servlet.DriverServlet","methodName":"doPost","lineNumber":67},{"fileName":"HttpServlet.java","className":"javax.servlet.http.HttpServlet","methodName":"service","lineNumber":707},{"fileName":"HttpServlet.java","className":"javax.servlet.http.HttpServlet","methodName":"service","lineNumber":790},{"fileName":"ServletHolder.java","className":"org.seleniumhq.jetty9.servlet.ServletHolder","methodName":"handle","lineNumber":841},{"fileName":"ServletHandler.java","className":"org.seleniumhq.jetty9.servlet.ServletHandler","methodName":"doHandle","lineNumber":543},{"fileName":"ScopedHandler.java","className":"org.seleniumhq.jetty9.server.handler.ScopedHandler","methodName":"nextHandle","lineNumber":188},{"fileName":"SessionHandler.java","className":"org.seleniumhq.jetty9.server.session.SessionHandler","methodName":"doHandle","lineNumber":1584},{"fileName":"ScopedHandler.java","className":"org.seleniumhq.jetty9.server.handler.ScopedHandler","methodName":"nextHandle","lineNumber":188},{"fileName":"ContextHandler.java","className":"org.seleniumhq.jetty9.server.handler.ContextHandler","methodName":"doHandle","lineNumber":1228},{"fileName":"ScopedHandler.java","className":"org.seleniumhq.jetty9.server.handler.ScopedHandler","methodName":"nextScope","lineNumber":168},{"fileName":"ServletHandler.java","className":"org.seleniumhq.jetty9.servlet.ServletHandler","methodName":"doScope","lineNumber":481},{"fileName":"SessionHandler.java","className":"org.seleniumhq.jetty9.server.session.SessionHandler","methodName":"doScope","lineNumber":1553},{"fileName":"ScopedHandler.java","className":"org.seleniumhq.jetty9.server.handler.ScopedHandler","methodName":"nextScope","lineNumber":166},{"fileName":"ContextHandler.java","className":"org.seleniumhq.jetty9.server.handler.ContextHandler","methodName":"doScope","lineNumber":1130},{"fileName":"ScopedHandler.java","className":"org.seleniumhq.jetty9.server.handler.ScopedHandler","methodName":"handle","lineNumber":141},{"fileName":"HandlerWrapper.java","className":"org.seleniumhq.jetty9.server.handler.HandlerWrapper","methodName":"handle","lineNumber":132},{"fileName":"Server.java","className":"org.seleniumhq.jetty9.server.Server","methodName":"handle","lineNumber":564},{"fileName":"HttpChannel.java","className":"org.seleniumhq.jetty9.server.HttpChannel","methodName":"handle","lineNumber":320},{"fileName":"HttpConnection.java","className":"org.seleniumhq.jetty9.server.HttpConnection","methodName":"onFillable","lineNumber":251},{"fileName":"AbstractConnection.java","className":"org.seleniumhq.jetty9.io.AbstractConnection$ReadCallback","methodName":"succeeded","lineNumber":279},{"fileName":"FillInterest.java","className":"org.seleniumhq.jetty9.io.FillInterest","methodName":"fillable","lineNumber":112},{"fileName":"ChannelEndPoint.java","className":"org.seleniumhq.jetty9.io.ChannelEndPoint$2","methodName":"run","lineNumber":124},{"fileName":"QueuedThreadPool.java","className":"org.seleniumhq.jetty9.util.thread.QueuedThreadPool","methodName":"runJob","lineNumber":672},{"fileName":"QueuedThreadPool.java","className":"org.seleniumhq.jetty9.util.thread.QueuedThreadPool$2","methodName":"run","lineNumber":590},{"fileName":"Thread.java","className":"java.lang.Thread","methodName":"run","lineNumber":745}]}}', 'status': 500}

    Steps to reproduce -

    Execute the above steps in python using selenium 3.3.3, firefox 52.0.2, geckodriver 0.15.0. The server is using selenium-server-standalone-3.3.1.jar on ubuntu 16.10. I'm happy to provide the ip of the server privately if it'll help.

    C-grid 
    opened by ghost 76
  • "Port" leaking in C# WebDriver.dll

    Meta -

    OS:
    Windows 10, Windows Server 2008 R2 Selenium Version:
    WebDriver 3.4.0 Browser:
    Firefox and Chrome

    Browser Version:
    Firefox: 53.0.3 (32 bits) Chrome: Version 59.0.3071.86 (Official Build) (64-bit)

    Expected Behavior -

    WebDriver suppose to close the ports after each commands sent to ChromeDriver or GeckoDriver

    Actual Behavior -

    WebDriver keeps the ports open until the WebDriver quit(). This caused the ports run out from the OS when I had 8 parallel tests running together without open and close ChromeDriver or FirefoxDriver.

    Steps to reproduce -

    Run the Selenium Tests with ChromeDriver or FirefoxDriver with any simple action, e.g. Navigate to a website. Repeat this step for 1000 time.

    Open a Windows Command Prompt, type: netstat -a -b

    You will find the ChromeDriver/GeckoDriver holds up about 1000 ports without releasing.

    I have amended the code in OpenQA.Selenium.Remote.DriverServiceCommandExecutor.cs, line 37 old code: this(driverService, commandTimeout, true) new code: this(driverService, commandTimeout, false)

    and

    OpenQA.Selenium.Remote.HttpCommandExecutor.cs, line 46: old code: : this(addressOfRemoteServer, timeout, true) new code: : this(addressOfRemoteServer, timeout, false)

    Retest again with the above step, we can see the ChromeDriver / Gecko Driver doesn't hold up the port any more.

    It seems for HttpWebRequest object, even it is out of scope, if its' KeepAlive property is true, the .net runtime holds it until the WebDriver is quit and closed.

    In theory, I can't think of HttpCommandExecutor should have HttpWebRequest should have KeepAlive = true as it looks like HttpCommandExecutor is running stateless commands. Maybe you can consider to remove the passing in of the attribute to avoid future problem.

    Kind regards

    Ken Han

    Self Service Tech Lead Fairfax Media Australia

    C-dotnet 
    opened by kenhan168 71
  • JWP actions endpoints do not get translated to W3C by standalone

    JWP actions endpoints do not get translated to W3C by standalone

    Meta -

    OS:
    OSX 10.11.6 Selenium Version:
    3.3.1 Browser:
    Firefox

    Browser Version:
    52.1

    Expected Behavior -

    As per https://github.com/SeleniumHQ/selenium/issues/2285, mouse hover events should work with selenium 3.x and geckodriver 0.15.

    Actual Behavior -

    It gives error :

    org.openqa.selenium.UnsupportedCommandException: mouseMoveTo Build info: version: '3.3.1', revision: '5234b32', time: '2017-03-10 09:04:52 -0800' System info: host: 'MacBook-Pro-4.local', ip: 'fe80:0:0:0:6203:8ff:fea6:d310%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '1.8.0_91' Driver info: driver.version: RemoteWebDriver Command duration or timeout: 9 milliseconds at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:638) at org.openqa.selenium.remote.RemoteExecuteMethod.execute(RemoteExecuteMethod.java:35) at org.openqa.selenium.remote.RemoteMouse.mouseMove(RemoteMouse.java:89) at org.openqa.selenium.interactions.MoveMouseAction.perform(MoveMouseAction.java:43) at org.openqa.selenium.interactions.CompositeAction.perform(CompositeAction.java:36) at org.openqa.selenium.interactions.Actions$BuiltAction.perform(Actions.java:637) at org.openqa.selenium.interactions.Actions.perform(Actions.java:596) at PageObjects.CoverStoriesPage.tap_NextButton_onHints(CoverStoriesPage.java:435) at PageObjects.CoverStoriesPage.commentOnArticle(CoverStoriesPage.java:325) at tests.CoverStoriesTest.addCommentOnArticle(CoverStoriesTest.java:136) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:100) at org.testng.internal.Invoker.invokeMethod(Invoker.java:646) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:811) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1129) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) at org.testng.TestRunner.privateRun(TestRunner.java:746) at org.testng.TestRunner.run(TestRunner.java:600) at org.testng.SuiteRunner.runTest(SuiteRunner.java:366) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319) at org.testng.SuiteRunner.run(SuiteRunner.java:268) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1264) at org.testng.TestNG.runSuitesLocally(TestNG.java:1189) at org.testng.TestNG.runSuites(TestNG.java:1104) at org.testng.TestNG.run(TestNG.java:1076) at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:152) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:57) Caused by: org.openqa.selenium.UnsupportedCommandException: mouseMoveTo Build info: version: '3.3.1', revision: '5234b32', time: '2017-03-10 09:04:52 -0800' System info: host: 'MacBook-Pro-4.local', ip: 'fe80:0:0:0:6203:8ff:fea6:d310%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '1.8.0_91' Driver info: driver.version: RemoteWebDriver Build info: version: '3.3.1', revision: '5234b325d5', time: '2017-03-10 09:10:29 +0000' System info: host: 'MacBook-Pro-4.local', ip: 'fe80:0:0:0:6203:8ff:fea6:d310%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '1.8.0_73' Driver info: driver.version: RemoteWebDriver at org.openqa.selenium.remote.http.AbstractHttpCommandCodec.encode(AbstractHttpCommandCodec.java:220) at org.openqa.selenium.remote.http.AbstractHttpCommandCodec.encode(AbstractHttpCommandCodec.java:118) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:157) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604) at org.openqa.selenium.remote.RemoteExecuteMethod.execute(RemoteExecuteMethod.java:35) at org.openqa.selenium.remote.RemoteMouse.mouseMove(RemoteMouse.java:89) at org.openqa.selenium.support.events.internal.EventFiringMouse.mouseMove(EventFiringMouse.java:58) at org.openqa.selenium.remote.server.handler.interactions.MouseMoveToLocation.call(MouseMoveToLocation.java:59) at org.openqa.selenium.remote.server.handler.interactions.MouseMoveToLocation.call(MouseMoveToLocation.java:32) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:176) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

    Steps to reproduce -

    // Switch to new window opened
    	for(String winHandle : driver.getWindowHandles()){
    		driver.switchTo().window(winHandle);
    	}
    
    	driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    
    	WebElement copyrightLink=driver.findElement(copyright);
    
            Actions actions1 = new Actions(driver);
            actions1.moveToElement(copyrightLink).perform();
    	actions1.click().perform();
    	Thread.sleep(1000);
    
    C-java C-remote 
    opened by puneetkaur11 65
  • The HTTP request to the remote WebDriver server for URL http://localhost:42607/session timed out after 60 seconds.

    The HTTP request to the remote WebDriver server for URL http://localhost:42607/session timed out after 60 seconds.

    Meta -

    OS: Win 10 c64

    Selenium Version: 3.9.0.0 Selenium.WebDriver.ChromeDriver version="2.35.0" targetFramework="net47"

    Browser: Chrome Version 64.0.3282.140 (Official Build) (64-bit)

    Expected Behavior -

    Get data back. It is the same code I use in my unit test. My unit test passes successfully, but when running in IIS I get the error below.

    Actual Behavior -

    Throws exception when hitting the chromeDriver constructor. Strange exception message is: http://localhost:42607/session timed out after 60 seconds. I do not do a request to this url? I don't know where it comes from?! When I open this url in chrome, it displays: Unknown command.

    { "Message": "An error has occurred.", "ExceptionMessage": "The HTTP request to the remote WebDriver server for URL http://localhost:42607/session timed out after 60 seconds.", "ExceptionType": "OpenQA.Selenium.WebDriverException", "StackTrace": " at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)\r\n at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)\r\n at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute)\r\n at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary2 parameters)\r\n at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)\r\n at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)\r\n at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout)\r\n at Web.Scraping.WebApi.ScrapeController.Post(List1 listDTO) in C:\Users\Admin\Documents\Visual Studio 2017\Projects\Phantomjs.UnitTests\Web.Scraping.WebApi\ScrapeController.cs:line 45\r\n at lambda_method(Closure , Object , Object[] )\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.b__9(Object instance, Object[] methodParameters)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()", "InnerException": { "Message": "An error has occurred.", "ExceptionMessage": "The request was aborted: The operation has timed out.", "ExceptionType": "System.Net.WebException", "StackTrace": " at System.Net.HttpWebRequest.GetResponse()\r\n at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)" } }

    Steps to reproduce -

    This code works fine in my unit test and also worked fine in IIS before, but out of sudden it is broken.

    var co = new ChromeOptions();
               co.AddArgument("headless");
               co.AcceptInsecureCertificates = true;
               co.PageLoadStrategy = PageLoadStrategy.Normal;
    
               Dictionary<string, bool> dic = new Dictionary<string, bool>();
    
               using (var driver = new ChromeDriver(co))
               {
                   try
                   {
                       var urls = new string[] { paypalUrl, noPaypalUrl, paypalUrl1 };
                       driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
    
                       for (int i = 0; i < urls.Length; i++)
                       {
                           var url = urls[i];
    
                           var exists = driver.CheckElementExists(url, 
                               wt => !string.IsNullOrWhiteSpace(wt.FindElement(By.CssSelector("ul.payment-type-list")).Text), "li.pt-paypal");
    
                           dic.Add(url, exists);
                       }
    
                       driver.Close();
    
    ....
    
     static IWebElement TryFindElementByCssSelector(this ChromeDriver self, string cssSelector)
           {
               try
               {
                   return self.FindElementByCssSelector(cssSelector);
               }
               catch (Exception) { }
    
               return null;
           }
    
           public static bool CheckElementExists(this ChromeDriver driver, string url, Func<IWebDriver, bool> waitCondition, string cssSelectorToLookFor)
           {
               driver.Navigate().GoToUrl(url);
               var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
               wait.Until(waitCondition);
    
               var liPaypal = driver.TryFindElementByCssSelector(cssSelectorToLookFor);
    
               return liPaypal == null ? false : true;
           }
    
    opened by Legends 53
  • .NET: Add support for .NET Core

    .NET: Add support for .NET Core

    This PR makes the Selenium WebDriver project compile on .NET Core. The changes basically boil down to fixes for:

    • The new reflection API
    • The absence of Serialization
    • Standardization on .Dispose instead of .Close
    • Changes in how OS-related information is accessed
    • Changes in the HttpWebRequest and HttpWebResponse classes

    Happy to work with you on any feedback you may provide,

    C-dotnet 
    opened by qmfrederik 51
  • [🐛 Bug]: SelectElement not working after updating selenium webdriver 4 and IEDriverServer 4

    [🐛 Bug]: SelectElement not working after updating selenium webdriver 4 and IEDriverServer 4

    What happened?

    after updating selenium WebDriver (3.15 to 4.0.0) and IEDriver (3.150.1 to 4.0.0) getting below error while setting dropdown value, code was working properly with old selenium version (3): Error : Cannot click on option element. Executing JavaScript click function returned an unexpected error, but no error could be returned from Internet Explorer's JavaScript engine

    HTML :

    C# code : public By countrySelector = By.Id("selCountry"); public string Country { set => new SelectElement(Driver.FindElement(countrySelector )).SelectByText(value); }

       Country= "India";
    

    How can we reproduce the issue?

    HTML : 
    <TD vAlign=top><SELECT id=selCountry">
    <OPTION selected value=0>None</OPTION> <OPTION value=1>India</OPTION></SELECT>
    </TD>
           
    
     public By countrySelector = By.Id("selCountry");
    
            public string Country
            {
                set => new SelectElement(Driver.FindElement(countrySelector )).SelectByText(value);
            }
    
    Country= "India";
    

    Relevant log output

    Cannot click on option element. Executing JavaScript click function returned an unexpected error, but no error could be returned from Internet Explorer's JavaScript engine
    

    Operating System

    Window server 2016

    Selenium version

    C# Selenium version 4 , IEDriver 4

    What are the browser(s) and version(s) where you see this issue?

    Internet Explorer 11

    What are the browser driver(s) and version(s) where you see this issue?

    IEDriver 4

    Are you using Selenium Grid?

    no

    R-awaiting answer C-cpp D-IE I-defect 
    opened by shlokVK 50
  • Shadow DOM traversal support

    Shadow DOM traversal support

    I've been gradually trying to push support of shadow DOM v1 into selenium (see #4230, #5762).

    However, we are still missing one major piece: traversal.

    There needs to be some ability to traverse shadow DOM when calling FindElement and what not.

    So maybe we can discuss some possible implementations here?

    What we can't/shouldn't do:

    • Alter how existing selectors work (CSS, XPath, etc. they should all behave as they do now)
    • Implement deprecated things like /deep/
    • Implement our own selector syntax/mechanism

    The way I see this working is that we should treat the DOM as we would in the browser, meaning there will not be a way to select a deep element in one call:

    element
      .FindElement(By.CssSelector("foo"))
      .ShadowRoot?
      .FindElement(By.CssSelector("bar"));
    

    Which, in the browser, would be structured the same (no shortcuts):

    element
      .querySelector('foo')
      .shadowRoot
      .querySelector('bar');
    

    So maybe we just need to implement ShadowRoot on WebElement? Which can be null (just like in the browser).

    A-needs decision I-enhancement 
    opened by 43081j 50
  • Download file in headless chrome

    Download file in headless chrome

    Meta -

    OS: OSX Selenium Version: 3.8.1 Browser: Chrome

    Expected Behavior -

    Permit files to be downloaded in headless mode.

    Actual Behavior -

    Files aren't downloaded.

    Steps to reproduce -

    Launch chrome in headless mode and try to download any file.

    Looks like it is a feature to prevent sites from downloading files when running chrome in headless mode. https://bugs.chromium.org/p/chromium/issues/detail?id=696481

    To permit downloads it's necessary to send a command to chrome. I'm using java and I couldn't find a way to make it work.

    I even tried sending a post request to /session/:sessionId/chromium/send_command but that didn't work.

    R-blocked on external C-dotnet C-java D-chrome I-enhancement 
    opened by jonhkr 50
  • [🐛 Bug]: Call Augmenter().augment(driver) failed

    [🐛 Bug]: Call Augmenter().augment(driver) failed

    What happened?

    On both Selenium Grid & Selenium Standalone, when Augmenter is called, a connect timeout exception is thrown. I ran into the issue when I was adding required code for geolocation emulation in an existing project. Selenium Grid or Hub works fine otherwise. I tested with versions Selenium 4.2.0 and 4.6.0 in the Maven pom.xml file.

    How can we reproduce the issue?

    package main;
    
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.devtools.DevTools;
    import org.openqa.selenium.devtools.HasDevTools;
    import org.openqa.selenium.remote.Augmenter;
    import org.openqa.selenium.remote.RemoteWebDriver;
    import org.openqa.selenium.devtools.v107.emulation.Emulation;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.Optional;
    
    public class Main {
        
        public static void main(String[] args) throws MalformedURLException {
    
            ChromeOptions chromeOptions = new ChromeOptions();
            WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), chromeOptions);
            driver = new Augmenter().augment(driver);
    
            DevTools devTools = ((HasDevTools) driver).getDevTools();
            devTools.createSession();
    
            devTools.send(Emulation.setGeolocationOverride(Optional.of(52.5043),
                    Optional.of(13.4501),
                    Optional.of(1)));
    
            driver.get("https://my-location.org/");
            driver.quit();
    
        }
    
        }
    
    
    
    Pom.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>geo-test</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-chrome-driver</artifactId>
                <version>4.6.0</version>
            </dependency>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-remote-driver</artifactId>
                <version>4.6.0</version>
            </dependency>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-devtools-v107</artifactId>
                <version>4.6.0</version>
            </dependency>
        </dependencies>
    
        <properties>
            <maven.compiler.source>14</maven.compiler.source>
            <maven.compiler.target>14</maven.compiler.target>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
    </project>
    

    Relevant log output

    Exception in thread "main" org.openqa.selenium.remote.http.ConnectionFailedException: Unable to establish websocket connection to http://172.17.0.2:4444/session/acd4cd67f26de20fcc2e1ab82f3fc3d7/se/cdp
    Build info: version: '4.6.0', revision: '79f1c02ae20'
    System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.16', java.version: '14.0.2'
    Driver info: driver.version: unknown
    	at org.openqa.selenium.remote.http.netty.NettyWebSocket.<init>(NettyWebSocket.java:102)
    	at org.openqa.selenium.remote.http.netty.NettyWebSocket.lambda$create$3(NettyWebSocket.java:128)
    	at org.openqa.selenium.remote.http.netty.NettyClient.openSocket(NettyClient.java:107)
    	at org.openqa.selenium.devtools.Connection.<init>(Connection.java:77)
    	at org.openqa.selenium.devtools.SeleniumCdpConnection.<init>(SeleniumCdpConnection.java:34)
    	at org.openqa.selenium.devtools.SeleniumCdpConnection.lambda$create$0(SeleniumCdpConnection.java:56)
    	at java.base/java.util.Optional.map(Optional.java:258)
    	at org.openqa.selenium.devtools.SeleniumCdpConnection.create(SeleniumCdpConnection.java:54)
    	at org.openqa.selenium.devtools.SeleniumCdpConnection.create(SeleniumCdpConnection.java:47)
    	at org.openqa.selenium.devtools.DevToolsProvider.getImplementation(DevToolsProvider.java:50)
    	at org.openqa.selenium.devtools.DevToolsProvider.getImplementation(DevToolsProvider.java:31)
    	at org.openqa.selenium.remote.Augmenter.augment(Augmenter.java:186)
    	at main.Main.main(Main.java:25)
    Dec 06, 2022 7:40:36 AM org.openqa.selenium.remote.http.WebSocket$Listener onError
    WARNING: connection timed out: /172.17.0.2:4444
    java.net.ConnectException: connection timed out: /172.17.0.2:4444
    	at org.asynchttpclient.netty.channel.NettyConnectListener.onFailure(NettyConnectListener.java:179)
    	at org.asynchttpclient.netty.channel.NettyChannelConnector$1.onFailure(NettyChannelConnector.java:108)
    	at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:28)
    	at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:20)
    	at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578)
    	at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:571)
    	at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:550)
    	at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:491)
    	at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:616)
    	at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:609)
    	at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:117)
    	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:262)
    	at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)
    	at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:153)
    	at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:174)
    	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)
    	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:167)
    	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
    	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
    	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
    	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    	at java.base/java.lang.Thread.run(Thread.java:832)
    Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: /172.17.0.2:4444
    	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:261)
    	... 12 more
    

    Operating System

    macOS Monterey

    Selenium version

    Java Selenium 4.2.0, Java Selenium 4.6.0

    What are the browser(s) and version(s) where you see this issue?

    Chrome 107.0.5304.110

    What are the browser driver(s) and version(s) where you see this issue?

    ChromeDriver: 107.0.5304.62

    Are you using Selenium Grid?

    Tested with Selenium Hub 4.5, also failed with same exception

    I-defect needs-triaging 
    opened by HawaiiRyan 1
  • [🚀 Feature]: Process PATH by Selenium Manager

    [🚀 Feature]: Process PATH by Selenium Manager

    Feature and motivation

    Selenium Manager can discover if a driver is in the path and if the version is suitable to drive the browser. If the driver is not compatible (typically, since it is an old version), Selenium Manager should fix the problem (i.e., resolve the proper driver and ignore the driver in the PATH).

    We can also log a WARN in Selenium Manager about it (something similar to mention, e.g., "you have an old version of ... etc."). That WARN trace should also be parsed in the bindings and logged to the final user again.

    Usage example

    $ cargo run -- --browser chrome
    WARN    Incompatible release of chromedriver (version 104.0.5112.79) detected in PATH (/home/boni/drivers/chromedriver)
    INFO    /home/boni/.cache/selenium/chromedriver/linux64/106.0.5249.61/chromedriver
    
    I-enhancement needs-triaging 
    opened by bonigarcia 1
  • [🚀 Feature]: Selenium Manager get Browser Version from Options classes

    [🚀 Feature]: Selenium Manager get Browser Version from Options classes

    Feature and motivation

    Java already supports passing in Options to Service class for Chrome to get logging level — https://github.com/SeleniumHQ/selenium/blob/4c74183e447e0d9d86617b834d8dc8b2eb375d3d/java/src/org/openqa/selenium/chrome/ChromeDriverService.java#L139 We'll want to expand on that for all service classes, and then implement it in each of the other languages.

    Usage example

    n/a

    C-py C-rb C-dotnet C-java C-nodejs I-enhancement 
    opened by titusfortner 0
  • [rust] Allow Selenium Manager to be used as a Rust lib crate (#11132)

    [rust] Allow Selenium Manager to be used as a Rust lib crate (#11132)

    Description

    This PR refactors the Selenium Manager Rust logic to be used as lib crate (see reference for publishing Rust crates in crates.io).

    Motivation and Context

    This PR implements #11132. Moreover, this PR prepares the Selenium Manager logic for M3, devoted to rich configuration.

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [X] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist

    • [X] I have read the contributing document.
    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [ ] I have added tests to cover my changes.
    • [X] All new and existing tests passed.
    opened by bonigarcia 0
  • [java] Merge capabilities of slot with the new session request capabilities

    [java] Merge capabilities of slot with the new session request capabilities

    Thanks for contributing to Selenium! A PR well described will help maintainers to quickly review and merge it

    Before submitting your PR, please check our contributing guidelines. Avoid large PRs, help reviewers by making them as simple and short as possible.

    Description

    Merge capabilities of slot with the new session request capabilities

    Motivation and Context

    Node config allows the Grid user to set driver configuration. Example: java -jar selenium-server-4.6.0.jar standalone --port 50859 --detect-drivers false --driver-configuration display-name="Chrome Custom" stereotype='{"browserName":"chrome","goog:chromeOptions":{"args":[\"incognito\",\"window-size=500,500\"]},"pageLoadStrategy":"normal"}'

    The configuration is applied to the session slots. This intends to provide the configuration that all matching incoming session requests should ideally consider and pass it along to the respective web driver. Currently, the new session request capabilities are passed as it is without considering if the session slot has additional capabilities that need to be considered.

    The changes help fix this by giving merging the capabilities of the slot and the incoming session request. The capabilities of the slot override the capabilities of the incoming session request in case of custom driver-configuration.

    Types of changes

    • [X] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist

    • [X] I have read the contributing document.
    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [ ] I have added tests to cover my changes.
    • [X] All new and existing tests passed.
    opened by pujagani 2
  • [ruby][bidi] Listening to events

    [ruby][bidi] Listening to events

    Description

    Working for BiDi implementation in ruby. This PR is for listening to events which will further help me in implementing modules specified in BiDi Spec

    Motivation and Context

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist

    • [ ] I have read the contributing document.
    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [ ] I have added tests to cover my changes.
    • [ ] All new and existing tests passed.
    opened by TamsilAmani 0
Releases(selenium-4.7.0)
  • selenium-4.7.0(Dec 1, 2022)

    Changelog

    For each component's detailed changelog, please check:

    Commits in this release

    Click to see all the commits included in this release
    • 0a5b49d16f - [java] update changelog and bump version to 4.7 :: titusfortner
    • 8d170a99d4 - [rb] update changes and bump version to 4.7 :: titusfortner
    • 8d92d981a5 - [py] update changes and bump version to 4.7 :: titusfortner
    • 68b46096da - [js] update changes and bump version to 4.7 :: titusfortner
    • 1f5fe6da92 - [dotnet] update readme and bump version to 4.7 :: titusfortner
    • 7ee8add26b - [cpp] bump IE Driver version to 4.7 :: titusfortner
    • 4b4e01dddf - update selenium manager binaries for 4.7 release :: titusfortner
    • 7a79429d15 - [js] update ways error messages are handled for selenium manager :: titusfortner
    • c23b95b9ff - [dotnet] split up frameworks on CI :: titusfortner
    • 993e6b2f97 - [py] fix linter issue :: titusfortner
    • 416d183251 - [ci] run language tests from typical language tags :: titusfortner
    • 409b057bdf - [py]: 🚀 Improve performance (#11310) :: Fenil Mehta
    • 8b6dbb38e0 - [py]: Propagate stderr to exceptions when selenium manager fails (#11329) :: Simon K
    • 3584dad5b5 - [Build] setup multiple python interpreters defaulting to 3.8 :: AutomatedTester
    • cccbe85920 - [Build] Bump rules_python to 0.15 :: AutomatedTester
    • 8cd4954c7a - [rb] fix failing specs :: titusfortner
    • 285dacec9c - [dotnet][cdp] add support for Chrome 108 and remove support for Chrome 105 :: titusfortner
    • 922f5d31af - [js][cdp] add support for Chrome 108 and remove support for Chrome 105 :: titusfortner
    • e8c0102941 - [rb][cdp] add support for Chrome 108 and remove support for Chrome 105 :: titusfortner
    • c315feef9d - [py][cdp] add support for Chrome 108 and remove support for Chrome 105 :: titusfortner
    • 8d5c10ff62 - [java][cdp] add support for Chrome 108 and remove support for Chrome 105 :: titusfortner
    • 69fac46fe0 - [cdp] add support for Chrome 108 and remove support for Chrome 105 :: titusfortner
    • 3d1b8c6267 - [dotnet] run tests on Windows CI :: titusfortner
    • a8f4184e3c - [rb] make sure command execution errors get rescued :: titusfortner
    • 769cd05fb4 - [rb] fix reset_driver! implementation :: titusfortner
    • 37498f8bd1 - [java] toggle selenium manager output by exit value instead of content :: titusfortner
    • 18fc6346f7 - [rb] toggle Selenium Manager execution output on exit code :: titusfortner
    • ec2430e52b - [java] minor test updates :: titusfortner
    • b4d6c4e59a - [cpp] update to visual studio 2022 :: titusfortner
    • 9480f0d514 - [dotnet][cdp] implement get targets better :: titusfortner
    • aa5dfd697f - [dotnet] add guards and fix tests :: titusfortner
    • b3c3903c9f - [dotnet] add test attributes to guard for platforms and targets :: titusfortner
    • 8fb8fd791a - [dotnet] toggle Selenium Manager execution output on exit code :: titusfortner
    • d2838e1291 - [dotnet] update everything required for .NET 6 :: titusfortner
    • 471e245d7c - ci: fix GitHub_Actions set-output is deprecated (#11265) :: Christian Clauss
    • 955581f308 - [java] Merge mutable capabilities with options correctly :: Puja Jagani
    • ef63f5d110 - [JS] Resolve dependabot alerts :: Sriharsha
    • 2a0a11403e - [JS] Bump rules_nodejs to 5.7.2 :: Sriharsha
    • 0831f5d7ce - update all github actions to latest versions for consistency :: titusfortner
    • c3a8c94d1f - [py] Upgrade GitHub Actions (#11257) :: Christian Clauss
    • 148e0d5229 - [rb] parse stderr and stdout for improved error logging with Selenium Manager :: titusfortner
    • e8e5f3674a - Make nightly version bump target names consistent :: Alex Rodionov
    • 2589a32331 - Fix RuboCop offenses in NightlyVersionGenerator :: Alex Rodionov
    • 538c11af6d - Publish nightly versions of Ruby gems every day :: Alex Rodionov
    • ab38b9cce2 - Upgrade Ruby rules for Bazel to the latest version :: Alex Rodionov
    • 02d47fdca0 - add test information to readme :: titusfortner
    • 0f8c153d6b - [rb] improve logic for tests that require specific options :: titusfortner
    • af2ab3f0c0 - [rb] allow safari options to specify technology preview :: titusfortner
    • 26b9f665c4 - [rb] remove references to testing firefox nightly :: titusfortner
    • 59763fcdf5 - [rb] update safety checks :: titusfortner
    • 71657e9858 - [rb] speed up target locator specs :: titusfortner
    • 50974dfaa2 - Run Edge tests for Ruby on Windows :: Alex Rodionov
    • 7024abb03a - Run Firefox tests for Ruby on Windows :: Alex Rodionov
    • db43c94f25 - Run Chrome tests for Ruby on Windows :: Alex Rodionov
    • e183ceb561 - Run unit tests for Ruby on Windows :: Alex Rodionov
    • 5990c6aad6 - Improve websocket connection stability :: Alex Rodionov
    • 4041b4d332 - Make Bazel GitHub actions cross-platform :: Alex Rodionov
    • e826612604 - Simplify selection of Ruby version for CI :: Alex Rodionov
    • 0ea5e3e8dd - [dotnet] Capture error output from selenium manager (#11320) :: Nikolay Borisenko
    • 854dd5fd46 - [dotnet] Target net48 on Tests Projects (#11314) :: Dor Blayzer
    • 728862db58 - [dotnet] Bump Moq from 4.12.0 to 4.13.0 in /dotnet/test/common (#11323) :: Dor Blayzer
    • 8486d5d6ee - README: added ruby test commands (#11296) :: Tamsil Sajid Amani
    • 83859d34e9 - README: added dotnet Integration tests Quickstart (#11317) :: Dor Blayzer
    • 6cee467b4b - [rust] Use of pure Rust TLS dependencies (fix #11291) (#11316) :: Boni García
    • 24ea8c308f - [py]: Bump versions for 4.6.1 in py files :: symonk
    • 8f33cf2bb4 - [py]: Prep changelog for python 4.6.1 :: symonk
    • a65dde078b - Replace response.getheader() with response.headers.get() (#11308) :: Michael Mintz
    • 68e0c851b1 - [grid] Removing several filters part of makeW3CSafe :: Diego Molina
    • 84da5ed2a2 - [java] Include selenium-manager output in Java exception (#11300) :: Boni García
    • 158aacef7f - Bump minimatch and recursive-readdir in /javascript/grid-ui (#11307) :: dependabot[bot]
    • c8a3c5bc10 - [java][bidi] Add constructor parameter for commands without a response :: Puja Jagani
    • 8124086117 - Support JRuby 9.4 in Ruby bindings :: Alex Rodionov
    • a4dac0c511 - add support in bindings to use Selenium Manager with Internet Explorer :: titusfortner
    • 4030c40fa5 - [rust] Include support for IEDriverServer in Selenium Manager (#11279) :: Boni García
    • 614b08871a - [grid] Updating material ui deps :: Diego Molina
    • 4cc05e4eec - Add .NET 6 support to .NET bindings (#11298) :: jimevans
    • a23df9194f - [dotnet] Use new implementation of HttpClient in DriverService for communication (#11143) :: Nikolay Borisenko
    • 38d9776b75 - add support for Ruby tests with IE :: titusfortner
    • 66e3c96ec7 - previous change was committed by mistake :: titusfortner
    • c3f832b13e - [grid] do not offload from multiple threads to a single worker (#11260) :: joerg1985
    • 384825f16b - Fix Firefox take full page screenshot spec :: Alex Rodionov
    • 4b7e292f6a - Fix Retina screen detection in Ruby specs :: Alex Rodionov
    • 62ef296ad9 - Refactor screenshot specs in Ruby :: Alex Rodionov
    • 15dc11f8ea - [java][bidi] Allow pssing json mapper when sending BiDi command :: Puja Jagani
    • bd6952bb4b - [java][bidi] Add LogInspector :: Puja Jagani
    • 52aebb5157 - [java] Fixing Firefox tests after Firefox 107 release :: Diego Molina
    • 8e59febc39 - [grid] Get TZ from parent container when not passed as cap. :: Diego Molina
    • b836aa3f87 - Fixing Rakefile :: Diego Molina
    • db83768085 - [java] follow the contract of Closeable.close() (#11282) :: joerg1985
    • be320332d1 - [grid] improved exception handling when no cause is set (#11286) :: joerg1985
    • 6ddaaf3120 - [py] make relative_locator errors meaningful (#11284) :: Jared Webber
    • 0231def8c8 - [rust] Check driver in cache before uncompressing (fix #11226) (#11273) :: Boni García
    • 5ce0a04a9b - [rust] Disable TTL for browsers in Selenium Manager (#11209) (#11278) :: Boni García
    • 94788289ef - [java][bidi] Avoid nested lists when sending single browsing context :: Puja Jagani
    • a70d3bceac - [Build] Bump rules_python to 0.13.0 :: AutomatedTester
    • 3a33a8dfab - Stop using system-wide Python for Bazel :: Alex Rodionov
    • 7ef46ae5d8 - [bidi][java] Pass set of browsing contexts instead of list :: Puja Jagani
    • e62baccfbb - [bidi][java] Map JavascriptLogEntry to correct type :: Puja Jagani
    • 2940e6f074 - [bidi][java] Allow pass browsing context to subscribe to an event :: Puja Jagani
    • 32e38eba02 - [bidi][java] Add JavascriptLogEntry object to match the w3c BiDi spec :: Puja Jagani
    • abde4ce306 - [rust] Improve error handling in Selenium Manager (#11263) :: Boni García
    • ff544bfc18 - Bump loader-utils from 2.0.3 to 2.0.4 in /javascript/grid-ui (#11266) :: dependabot[bot]
    • 7b23d4a1fe - Bump loader-utils from 1.4.1 to 1.4.2 (#11268) :: dependabot[bot]
    • d52f7babd1 - [JS] Set node_version to 18.x.x to install rules_nodejs dependencies :: Sriharsha
    • abfe1cd749 - [js] Bump npm package versions to latest :: Sriharsha
    • 7fdaf217b8 - [js] Bump version to 4.6.1 and update changelog :: Puja Jagani
    • b497b49062 - [js] Support Node 17 and above (#11262) :: Puja Jagani
    • fc4a104a46 - Fix typos (#11258) :: Christian Clauss
    • 8125df33ec - Refactor takes_screenshot_spec to work on Windows :: Alex Rodionov
    • 78d9e8ea1f - Handle unknown TERM signal on Windows :: Alex Rodionov
    • 0ecc50c55c - Fix ChildProcess to handle both normal exit and exit by signal :: Alex Rodionov
    • a2d76326d7 - Allow access to $HOME for TruffleRuby :: Alex Rodionov
    • 04ede9e6f1 - Add support for TruffleRuby :: Alex Rodionov
    • 969b734bc6 - Remove ChildProcess gem dependency :: Alex Rodionov
    • 81cd1a2750 - [grid] fixed reading the Connection header (#11255) :: joerg1985
    • 558e0a0d3b - [java] Return new input stream to allow multiple reads (#11249) :: Puja Jagani
    • 5f4a05c714 - Avoid Ruby installation on every CI build :: Alex Rodionov
    • 71545c92c6 - Switch to our own hermetic Ruby rules for Bazel :: Alex Rodionov
    • 6a8bf1ca7e - [grid] Guarding session stop in case the request fails :: Diego Molina
    • c579ecd621 - [java] Removing deprecated method in FirefoxProfile :: Diego Molina
    • 9c30b2f338 - [java] Removing deprecated APPLICATION_NAME and ELEMENT_SCROLL_BEHAVIOR :: Diego Molina
    • bdd9cbd7f5 - Ensure merged jars have all directories added :: Simon Mavi Stewart
    • 83f625cfe0 - Bump loader-utils from 2.0.2 to 2.0.3 in /javascript/grid-ui (#11241) :: dependabot[bot]
    • 76e29197c0 - Bump loader-utils from 1.4.0 to 1.4.1 (#11240) :: dependabot[bot]
    • de981a84fc - [rust] Bump Selenium Manager dependecies (#11236) :: Boni García
    • 62fce24e38 - [rust] Format Selenium Manager Rust logic using cargo fmt (#11237) :: Boni García
    • 7bfbfc605e - [rust] Update Selenium Manager M2 milestones in README (#11235) :: Boni García
    • 19941392d9 - [iedriver] ignore zoom if running on Edge (#11055) :: Titus Fortner
    • b59bb0b6d2 - [py]: bump linting dependency versions :: symonk
    • 7d4f3b1c9c - [java] Removing deprecated content related to locationContextEnabled :: Diego Molina
    • 2c388e5363 - [java] Removing deprecated content related to NetworkConnection :: Diego Molina
    • a31d34e6d2 - [java] Removing deprecated IE cap with typo :: Diego Molina
    • ded3b2f60a - [java] Deleting leftovers of deprecated content related to AppCache :: Diego Molina
    • 6623b90f4d - [java] Removing deprecated content related to AppCache :: Diego Molina
    • 946d789769 - [java] Removing deprecated Rotatable related classes :: Diego Molina
    • 096b6f8833 - [java] Deleting duplicated test :: Diego Molina
    • 0891a3bb84 - [rb] Remove executable permission for unnecessary files :: Alex Rodionov
    • 62a39a0782 - [JS] Set node version to 16.x.x in WORKSPACE :: Sriharsha
    • 8b9af8254e - [JS] Set node version to 16.x.x in WORKSPACE :: Sriharsha
    • 335df76301 - [py]: Fix syntax for stream.close() in service.py :: Simon K
    • 1d5210a838 - [py]: Avoid using imported modules in __del__ as interpreter shutdown may have destroyed them already :: Simon K
    • cd5d46a8e9 - [rb] update changelog and bump version to 4.6.1 :: titusfortner
    • 09f6cd86f5 - [rb] do not change file permissions when copied into gem :: titusfortner
    • 1e325adb3a - [dotnet] both a mistype and not necessary :: titusfortner
    Source code(tar.gz)
    Source code(zip)
    IEDriverServer_Win32_4.7.0.zip(1.04 MB)
    IEDriverServer_x64_4.7.0.zip(1.11 MB)
    selenium-dotnet-4.7.0.zip(32.16 MB)
    selenium-dotnet-strongnamed-4.7.0.zip(15.54 MB)
    selenium-java-4.7.0.zip(26.57 MB)
    selenium-server-4.7.0.jar(28.98 MB)
    selenium-server-4.7.0.zip(61.63 MB)
  • selenium-4.6.0(Nov 4, 2022)

    Changelog

    For each component's detailed changelog, please check:

    Commits in this release

    Click to see all the commits included in this release
    • dbf63cff9dd - [dotnet] forgot to delete CDP v103 directory :: titusfortner
    • e219c447714 - Update list of java modules to upload to maven :: Simon Mavi Stewart
    • 316f9738a8e - isPromise() thenable fix (#11048) :: Chris Stringer
    • 3167e93110f - [py]: new tox recipe for isort in non diff only mode (#11005) :: Simon K
    • c686e6875c3 - [py]: Recipe for black; configure flake8 to work in tandem :: symonk
    • b5b495da3ce - [py]: format python tests with black :: symonk
    • fe9444df1b2 - [py]: consolidate and document linting changes; enable linting in gh actions :: symonk
    • eaa7ecceb6b - [py]: tidy exceptions.py code :: symonk
    • 9e0316636f0 - [py]: Run flake8 last as other linters fix most of its issues automatically :: symonk
    • f4a891523b3 - [py]: use f-strings in some tests :: symonk
    • 1c2f1cbd69b - [py]: Lint webdriver/safari/ in preparation for consolidating the driver API :: symonk
    • 4d8fc6ba596 - [py]: Document firefox service= arg. closes #11067 :: symonk
    • 31144ffdc4c - [py]: Additional types and tidying safari service :: symonk
    • 084ffc83001 - [py]: Revert removal of default executable global for safari :: symonk
    • 58c3c5c887a - [py]: Adding a start/stop interface for typing :: symonk
    • c09027bc5c6 - [py]: convert service_url to fstrings :: symonk
    • ca217d29ec9 - [py]: Exit 1 in ci when linter is failing :: symonk
    • ba04acdf9ea - [py]: Base Service tidy up :: symonk
    • 6b4281bd4bc - [py]: More internal refactoring of the base Service class :: symonk
    • e2add163783 - [py]: Apply black on the rest of the code base :: symonk
    • c59a267a0c4 - [py]: bugfix iterating stdout twice instead of stderr :: symonk
    • 49efb1c3873 - [py]: remove no_focus_so_name unused argument :: symonk
    • a8026c18431 - [py]: bugfix _get_firefox_start_cmd referencing invalid os._name :: symonk
    • e1a2b532da2 - [py]: Tidy some webelement.py and simplify branched logic :: symonk
    • c22de96c687 - [java] Avoid throwing errors once NetworkInterceptor is closed :: Puja Jagani
    • a5423d92d58 - [py]: Remove invalid argument calls to _extract_and_check until removed :: symonk
    • fcb83491a87 - [py]: Remove invalid argument calls to _extract_and_check until removed :: symonk
    • 7ead8b87577 - [py]: Fix typing.Union t ypes for log_path :: symonk
    • 1d2ea0488e3 - [py]: Additional types; remove unused permissions.py :: symonk
    • 5fba3a2b2d2 - [py]: Remove RemoteDriverServerException :: symonk
    • 4199d70eb19 - [java] Avoiding hiding "internal" package so that selenium-api exports it :: Puja Jagani
    • 1fa4ca61d7e - [py]: Remove comments from tox.ini :: symonk
    • 3a788a383b4 - [py]: docs and type hints for chrome.service :: symonk
    • 7c7e2ecba28 - [py]: docs, type hints and clean up for ChromiumService :: symonk
    • d20db99aba0 - [py]: docs and types for EdgeService. deprecate verbose=True :: symonk
    • cbf98cdbfb6 - [py]: lint conftest.py :: symonk
    • 75ba99be2bc - [py]: Simplify safari.service; types, docs, general tidy up :: symonk
    • 086dfe759e9 - [py]: simplify uses of unnecessary elif throughout :: symonk
    • 589b8db8251 - [py]: #11084 - additional f-strings :: symonk
    • 3e41af7c806 - [py]: Remove unused send_remote_shutdown_command implementations in services :: symonk
    • 4a759a8cfb2 - [py]: Types and docs for wpiwebkit.service and additional args for consistency :: symonk
    • bf3780204f9 - [py]: Types and docs for webkitgtk.service and additional args for consistency :: symonk
    • f442a7ea45d - [py]: Update log_path docs for non chromium based services :: symonk
    • 7dbd3a331cb - [py]: start of bringing firefox.service inline with other services :: symonk
    • 3b7295b077a - [py]: Additional types and docs for Service base class; fix firefox service init args :: symonk
    • 39182204f4d - [py]: Remove unnecessary exception handling for start_error_message :: symonk
    • a793b3a86a0 - [py]: document mypy config; add additional types and types dependencies :: symonk
    • 6479063ef08 - [py]: call no arg __init__ in WebDriverException :: symonk
    • 49d1e3d1758 - [dotnet] this value was incorrectly changed :: titusfortner
    • c5f457e75dd - [dotnet] update changelog and bump version to 4.5.1 :: titusfortner
    • dcdff48f36a - [rust] Initial version of Selenium Manager (1.0.0-M1) (#11078) :: Boni García
    • a0aae462c80 - [JS] Update rules_nodejs to 5.7.0 :: Sriharsha
    • 86ba7d21b7d - [py]: Revert docs versions to keep docs intact :: symonk
    • 3d6950a7f82 - [py] Make get_screenshot_as_file() work with pathlib.Paths (#11095) :: Nick Crews
    • b8aa903f603 - [py]: make start_error_message optional again :: symonk
    • 9a9fd49f31a - [py]: debug log the service executable and pid :: symonk
    • 118f449a177 - [py]: use self.process and self.path correctly in the base service class :: symonk
    • 9c0a284f30b - [py]: Loosen mypy checks; be explicit in service args types and fix some mypy issues :: symonk
    • 3394c480ca9 - [py]: Address some mypy issues within service classes :: symonk
    • b878a9911e6 - [java] Fix linting errors and update tests to remove public access modifier :: nir-tal-talkspace
    • 7e0febb054a - [js]: fix a tiny typo in chromium.js (#11073) :: Kazuki Higashiguchi
    • d8ffd131f93 - Add workflow to build Selenium Manager in CI (for Windows, Linux, and macOS) (#11102) :: Boni García
    • 53571b21a6b - [rust] Add --browser-version and --driver-version to selenium-manager (#11100) :: Boni García
    • 97109ac9a82 - Add more logging to the JDK HTTP client :: Simon Mavi Stewart
    • b11b44174c1 - Bump rules_jvm_external to 4.4.2 :: Simon Mavi Stewart
    • 09cb0fb196a - Remove unused parameter in java_module rule :: Simon Mavi Stewart
    • b854e8836ce - Bump rules_pkg to 0.7.1 :: Simon Mavi Stewart
    • c06926c1fa2 - Allow the UI to be displayed from the selenium_server target :: Simon Mavi Stewart
    • 9e9156072ca - Run buildifier :: Simon Mavi Stewart
    • 0cceb8a4239 - [java] close the CDP connection on quit for FF (#11109) :: joerg1985
    • 7a204006e44 - [java] removed the broken escape (#11110) :: joerg1985
    • 877c34d637c - [java] use the correct base64 decoder (#11107) :: joerg1985
    • b2d8eb03dc5 - [java] Reduce noisy logs from CDP version finder :: Puja Jagani
    • f777911b8e5 - [java] Made dialect related log debug level :: Puja Jagani
    • 4cdcffee3bd - [java] respect the last flag for binary data (#11108) :: joerg1985
    • 3beefecbae6 - fix: Check that a port truly is free before using it (#11085) :: Artur
    • 06bc8b94f69 - [java] Make public constant storing capability name for IE options (#11114) :: Valery Yatsynovich
    • 423e7dbcdd8 - [grid] Updating JS deps :: Diego Molina
    • 5c375dd27b3 - [rust] Include optimization parameters for Selenium Manager releases (#11116) :: Boni García
    • 73b0d80ffb6 - [rust] Update rust lock files :: Puja Jagani
    • 07d52d4e0c5 - [grid] Adding method to know if driver supports BiDi :: Puja Jagani
    • bc438d4bb74 - [grid] Add BiDi endpoint to returned caps if available :: Puja Jagani
    • 57db565792e - [java] Ignoring additional headers in the JDK 11 implementation :: Diego Molina
    • 2eb3a0e4e97 - [java] pick random port outside of well-known ranges of ephemeral ports (#10990) :: h-arlt
    • 5bf00b4df23 - [rust] Include --driver flag to Selenium Manager (#11123) :: Boni García
    • 7e0978c4cad - [grid] Add method to check if slot supports BiDi :: Puja Jagani
    • 2e013bd61d4 - [grid] Add BiDi enable flag. Add "se:bidi" from local node. :: Puja Jagani
    • e6bd1f881f3 - [rust] Update Selenium Manager to fully support geckodriver 0.32.0 (#11126) :: Boni García
    • 1fe43fa7495 - [grid] Forward BiDi from node to driver :: Puja Jagani
    • 05039ab6a54 - [grid] Update proxy test to include bidi :: Puja Jagani
    • e685cf8715f - [py]: Remove protocols.py :: symonk
    • 02b23e0c088 - [java] Consume in batches from the new session queue (#10987) :: Puja Jagani
    • 01bf373e006 - [java] Deprecate max-threads flag. Add an alternate flag in the distributor for new session thread pool size. (#10995) :: Puja Jagani
    • adf498c284a - [iedriver] Enable msIEModeAlwaysWaitForUnload for Edge IE Mode (#11079) :: Brandon Walderman
    • 40669b666ba - [grid] Restoring behavior for session creation interval. :: Diego Molina
    • ce1b3b180ec - [grid] Add batch size flag for session queue :: Puja Jagani
    • 41f815c4afb - [grid] Checking in browser name is present :: Diego Molina
    • 017680db801 - [grid] Increasing batch size, to match the distributor :: Diego Molina
    • b029dcc71a9 - [grid] Updating JS deps :: Diego Molina
    • 0d82117e9a1 - [java] Updating dependencies :: Diego Molina
    • 9f123a48d71 - [java] Make sure EventFiringWebElement implements all WebElement methods (#11144) :: Valery Yatsynovich
    • 584d006457a - [bidi] [java] Make BaseLogEntry.LogLevel enum public (#11147) :: Moritz Kiefer
    • c025a923c6d - [java] Updating changelog and bumping version to 4.5.1 :: Diego Molina
    • 0c04357c74d - [grid] Removing default value for max-threads to avoid noisy warnings due to deprecation. :: Diego Molina
    • 1502505498e - [java] Updating dependencies :: Diego Molina
    • fcc4df1bc9c - [grid] Temporarily avoiding an extra jar merging :: Diego Molina
    • 101b42d5d89 - [java] Add support for basic auth in JDK client :: Puja Jagani
    • baedf6b16b6 - [grid] Adjusting PortProber for Docker execution :: Diego Molina
    • 702c64f787c - [java] Updating changelog and bumping version to 4.5.2 :: Diego Molina
    • 8b26e8fcb8c - Bumping bazel version :: Diego Molina
    • f53e22a106c - [java] Avoiding checks for "0.0.0.0" and "::1" in Linux :: Diego Molina
    • c3ecac381a7 - [java] Updating deps and bumping to 4.5.3 :: Diego Molina
    • 4b786a1e430 - [java] Removing check "::1" :: Diego Molina
    • ce883146b91 - [py] fix typing in get_full_page_screenshot_as_png (#11163) :: Václav Votípka
    • 29b015fdbb4 - [rb] allow multiple attempts to CI for Ruby tests :: titusfortner
    • 052a5cb7628 - [java] Updating CHANGELOG for 4.5.3 :: Diego Molina
    • 851cb0da757 - typo in error message (#11166) :: Konstantin Kotenko
    • baba6d12862 - Updated IllegalArgumentException to NullPointerException for Null Values in Require Class (#11162) :: vinoth959
    • 6ce24e46b93 - [CDP] Adding CDP files for v107 and removing v104 :: Diego Molina
    • 6b8c48b962d - [dotnet] get CDP working :: titusfortner
    • 0ba1b141db7 - [dotnet] get devtools tests passing :: titusfortner
    • 8e48e0840d6 - [java] Fix page ranges issue in PrintOptions (#11172) (#11174) :: Hyesung Lee
    • d78c5e8c46f - bazelisk is pre-installed on github runners (#11173) :: Titus Fortner
    • cb0aa8525af - [rb] update guards for Firefox implementation of scroll wheel :: titusfortner
    • 4e5978a60c7 - Update tracing.txt :: Puja Jagani
    • 615bbb9fd19 - [rust] Fix msedgedriver uncompression in Selenium Manager (#11180) :: Boni García
    • f5e195d43ba - [rb] firefox scroll by amount is only failing on mac :: titusfortner
    • a10fa79c562 - ensure the correct output stream is used (#11175) :: joerg1985
    • c927d4b34a6 - add pre-built selenium manager binaries :: titusfortner
    • 08dcad65da1 - [rb] add initial support for selenium manager :: titusfortner
    • ba18eccedd8 - [py] add initial support for selenium manager :: titusfortner
    • eecdacae2d8 - [java] Add initial support for Selenium Manager :: Boni Garcia
    • 69a327e4c17 - [dotnet] initial implementation of Selenium Manager :: titusfortner
    • bfba0f53088 - [rust] Update Selenium Manager roadmap in README (#11171) :: Boni García
    • c96bc0a437b - [py] some scrolling tests now work on Firefox :: titusfortner
    • 78dfc613b70 - [py] used wrong logger level :: titusfortner
    • 765704f693f - [java] update CI to use selenium manager (#11190) :: Titus Fortner
    • 405951912f0 - restore msedgedriver functionality to Selenium Manager :: titusfortner
    • 833b0a0a56f - remove rules_rust mirror url :: titusfortner
    • fe4c1491575 - Revert "[rb] do not allow Select class to work with disabled selects" :: titusfortner
    • bbc1663d099 - Revert "[py] do not allow Select class to work with disabled selects" :: titusfortner
    • aeb585bb353 - Revert "[java] only allow enabled select lists for Select class" :: titusfortner
    • dd5b0a4f1b1 - [dotnet] allow select list class to work with disabled select elements again :: titusfortner
    • cc3afbb6dd6 - [py] fix syntax for linting :: titusfortner
    • 2293f0c6e82 - [rb] test doubles need to accept selected? calls :: titusfortner
    • aa2384767c0 - [py] still cannot select disabled options with Select class :: titusfortner
    • e2542bbd2e5 - [py]: #11093 - The SessionId shouldn't be added to params themself bu… (#11121) :: tvataire
    • 14b802c22db - [JS] Update rules_nodejs to 5.7.1 :: Sriharsha
    • f569d7f6b1f - [grid] Closing input pipeline when 404 is returned :: Diego Molina
    • e0ade5cabc7 - [java] JDK Http client - avoid chunking without buffering to memory (#11198) :: joerg1985
    • b4ad08cad81 - [grid] Add ability to use Enter key to confirm (#11178) :: Muhammad Hammad
    • 722813c7233 - [dotnet] fix typo :: titusfortner
    • d83c0efbc8a - [dotnet] tidy Selenium manager logic :: titusfortner
    • 2e416b8cee1 - [dotnet] Bundle smg into nuget package and copy binaries to users output :: Nikolay Borisenko
    • 70d1ab1392d - [dotnet] Rework usage of selenium manager :: Nikolay Borisenko
    • 64430ecb848 - [dotnet] there is more than one place that needs selenium manager logic added :: titusfortner
    • 3bdde2a07cd - [dotnet] fix bug preventing installing addon from directory :: titusfortner
    • 472eebb9443 - [JS] Fix: making methods static (#11182) :: Tamsil Sajid Amani
    • 837dfe74ddf - [grid][ui] Add search field for running sessions (#11197) :: Muhammad Hammad
    • 6a198b55217 - [java] Avoiding pulling same netty dependencies for AsyncHttpClient :: Puja Jagani
    • 966ca7972e5 - Make sure selenium-manager and server JAR are packed into gem :: Alex Rodionov
    • 62cb3a05d37 - Prepare a patch for packaging manager binaries :: Nikolay Borisenko
    • 4861218e901 - [grid] Only check for IEDriver on Windows. :: Diego Molina
    • e14c264b60d - [JS] add support for selenium manager (#11189) :: Sri Harsha
    • b9ba6c0d4c3 - Do not pack server JAR into selenium-webdriver gem :: Alex Rodionov
    • 878ce7ebd37 - Ensure all ruby_test targets have access to :remote :: Alex Rodionov
    • 718f4f2d1dd - [rb] update guards for tests on Windows :: titusfortner
    • 7bb31fc5213 - mark Selenium Manager implementations as beta :: titusfortner
    • ba1821db704 - Fix platform list in #scroll_by guard :: Alex Rodionov
    • b0db1eeb303 - [dotnet] add Selenium Manager support for linux & mac :: titusfortner
    • 06e639eca55 - Including Rust in ./go copyright:update task :: Diego Molina
    • 73f93515cf5 - Running ./go copyright:update :: Diego Molina
    • 7be7e2e18f3 - [dotnet] fix the framework conditionals for Selenium Manager :: titusfortner
    • 4ce2649cf8e - [dotnet] add Selenium Manager support for Unix :: titusfortner
    • 79f1c02ae20 - Bumping versions to 4.6.0 and updating changelogs :: Diego Molina
    Source code(tar.gz)
    Source code(zip)
    IEDriverServer_Win32_4.6.0.zip(1.02 MB)
    IEDriverServer_x64_4.6.0.zip(1.11 MB)
    selenium-dotnet-4.6.0.zip(29.01 MB)
    selenium-dotnet-strongnamed-4.6.0.zip(6.99 MB)
    selenium-java-4.6.0.zip(25.51 MB)
    selenium-server-4.6.0.jar(27.86 MB)
    selenium-server-4.6.0.zip(59.34 MB)
  • selenium-4.5.0(Sep 28, 2022)

    Changelog

    For each component's detailed changelog, please check:

    Commits in this release

    Click to see all the commits included in this release
    • feed290ab3 - [js] missing end quote in bazel file :: titusfortner
    • fe167b119a - [java] update changelog and bump version to 4.5 :: titusfortner
    • 14516208b0 - [dotnet] update changelog and bump version to 4.5 :: titusfortner
    • 10ad14e20e - [iedriver] bump versions to 4.5 :: titusfortner
    • 5057e02848 - [js] update changelog and bump version to 4.5 :: titusfortner
    • 77166342b7 - [py] update changelog and bump versions to 4.5 :: titusfortner
    • 26dc816c5c - [rb] update changelog and bump version to 4.5 :: titusfortner
    • 50c5d6ff23 - [rb] add cdp v106 remove v103 :: titusfortner
    • 3170a497f8 - [dotnet] add cdp v106 remove v103 :: titusfortner
    • a2b161a5c5 - [py] add cdp v106 remove v103 :: titusfortner
    • 1ffd09357a - [js] add cdp v106 remove v103 :: titusfortner
    • 2a05eb120b - [java] add cdp v106 remove v103 :: titusfortner
    • 697c717a28 - [cdp] add definition files for v106 and remove v103 :: titusfortner
    • 9c8215e84e - [java] Enable BiDi session test :: Puja Jagani
    • f7b97cbe12 - [java] Allow origin of [::1] for geckodriver for IPv6 only systems :: Puja Jagani
    • 3e7c6e1a95 - Ensure that the decorators do not leak out of the support package :: Simon Mavi Stewart
    • 96c4ecd714 - [java] allow origins for geckodriver of localhost and 127.0.0.1 :: titusfortner
    • af12e439d8 - [JS] bump rules_nodejs to 5.6.0 :: Sriharsha
    • a3b11f7fb8 - [dotnet] update changelog for 4.5 :: titusfortner
    • 5d1779925c - [rb] update changelog for 4.5 :: titusfortner
    • 42850a7fab - [rb] add BiDi support for Chrome in preparation for Chrome v106 :: titusfortner
    • 58f5833ba0 - [rb] match other bindings by defaulting debugger_address and accept_insecure_certs to true for Firefox :: titusfortner
    • 04e1dfc1fd - [rb] run dev tools tests on Firefox :: titusfortner
    • e51e2a99ab - [rb] support initializing Server with args and log_level :: titusfortner
    • b44aee0478 - [rb] use options instead of capabilities :: titusfortner
    • 77c4bf303e - [rb] don't use opts as hash in tests :: titusfortner
    • cb8872cd72 - Remove spelling mistake from the method name (#11051) :: Vikas Goel
    • 760305b6a6 - [py]: add type hints for method parameters (#11053) :: Kim Hyeonseok
    • df0f92db7f - [iedriver] update changelog :: titusfortner
    • 42284b08ab - [java] update changelog :: titusfortner
    • 8aeb1e1290 - Run fluxbox as window manager for jobs using Xvfb (#11025) :: Henrik Skupin
    • ff372929fa - Fixed some typos (#11035) :: Shishu Raj Pandey
    • dc53093baf - [py] fix flake8 failure :: titusfortner
    • 3fcc413878 - [java] remove non-applicable xml test :: titusfortner
    • 31190f8edd - [java] fix aliases for windows 7 and vista platform name :: titusfortner
    • 0b3bc095c1 - Remove deprecated managed directories from bazel :: Puja Jagani
    • 2f15ea0efa - [py] update outdated usage example (#11049) :: Austin Michael Wilkins
    • d2205d9ba6 - [java] fix bug that forced platformName of windows 7 to vista :: titusfortner
    • 1a73c3f9f3 - Re-enable testGetValueOfUserDefinedProperty test for Firefox (#11046) :: Henrik Skupin
    • ccf6a45843 - [py]: remove incorrect references in the changelog :: symonk
    • b2598e7fab - [js] Update changelog :: Puja Jagani
    • e4742018d2 - [JS] Fix: Do not allow Select class to select disabled options (#11029) :: Tamsil Sajid Amani
    • 33106b6047 - Bump pinned browsers :: Simon Mavi Stewart
    • cd8b551d19 - [java] Java HTTP client : Allow reading the response more than once :: Puja Jagani
    • 0b853398ef - [java] Update check for content-length header :: Puja Jagani
    • 9433860d62 - [java] Remove unused import :: Puja Jagani
    • be2c7e469b - Change casing of method name. No logical changes :: Simon Mavi Stewart
    • 7387bc94a3 - [java] Ensure Java 11 client can send multiple websocket requests. Collect all the received data before processing. :: Puja Jagani
    • 4671831a08 - [java] Ensure Java 11 client works to support webdriver session :: Puja Jagani
    • 7f7199cd9d - [JS] Update changelog :: Puja Jagani
    • 5db05840e0 - [py]: Update doc generation dependencies :: symonk
    • 79793b6e0f - [py]: Remove opera markdown files :: symonk
    • 59c175d50a - [build] make ruby and python use setup-firefox action :: titusfortner
    • 77be05c6df - [build] Re-enabling browser-actions/[email protected] :: Henrik Skupin
    • ffb50262dd - [iedriver] use Edge if iexplorer is set to redirect to Edge :: titusfortner
    • 8d5f7a4cb9 - [iedriver] auto detect location of Edge if not specified :: titusfortner
    • 1b2093826f - [dotnet] support installing unsigned Firefox add-ons including from directory :: titusfortner
    • 106c89a6f6 - [dotnet] missed removing cdp v101 reference :: titusfortner
    • 662db2a0c3 - [rb] test more Firefox addon scenarios :: titusfortner
    • ba0a025a64 - [rb] support sending firefox addon directory as temporary in remote session :: TamsilAmani
    • 45e4e297f4 - [java] add tests for Firefox addons :: titusfortner
    • 5a21858df8 - [JS] add tests for Firefox addons :: titusfortner
    • f5d052e1c5 - [py] add tests for Firefox addons :: titusfortner
    • 2489973bb5 - add signed extension directory and unsigned extension zip :: titusfortner
    • 2ae39b2665 - [py] Move test xpi to test package :: David Burns
    • 84bb6fa59b - [JS] Skip Firefox window tests :: Sriharsha
    • b4df49ebca - [java] Update changelog :: Puja Jagani
    • dbcc022f73 - [JS] Update changelog :: Sriharsha
    • fa85effa0e - [dotnot] change default behavior for Select class with disabled elements :: titusfortner
    • e2bbb54153 - [py] do not allow Select class to select disabled options :: titusfortner
    • 0eb286a8fd - [py] do not allow Select class to work with disabled selects :: titusfortner
    • f207270082 - [rb] do not allow Select class to select disabled options :: titusfortner
    • 3b691c4fca - [rb] do not allow Select class to work with disabled selects :: titusfortner
    • 25b30ffa66 - [java] only allow enabled select lists for Select class :: titusfortner
    • b0925afe6c - [web] add disabled select and option elements :: titusfortner
    • e9c3aa9a95 - [rb] implement integration tests for Select lists :: titusfortner
    • fa6deeea6b - [JS] stop sending desiredCapabilities to local and remote end :: Sriharsha
    • 1c90777a07 - [JS] Updating rules_nodejs to 5.5.4 :: Sriharsha
    • c67d0f1dfc - [java] Refactor code to use StringBuilder instead of StringBuffer :: Andrei Solntsev
    • 9850c95bee - [java] Fix test ignorance custom logic (#11007) :: Boni García
    • c06370910c - fix some typos in code and documentation (#11009) :: Andrei Solntsev
    • 7f54c8f696 - [java] incorrectly put guard on the getter test instead of the setter test :: titusfortner
    • 067ab3c9f3 - [java] Remove try/catch from tests :: Andrei Solntsev
    • fcc549ad29 - [java] Ensure event firing decorator can accept a target class :: Puja Jagani
    • 5050a6bc0e - Fix javadoc (#10992) :: Bartek Florczak
    • b72224f966 - [py] missed another xfail_remote annotation :: titusfortner
    • d903de8fdc - [py] add xfail annotations for remote as well :: titusfortner
    • d9a312c639 - [java] ignore firefox test for bug :: titusfortner
    • ed638af0c4 - [py]: use Zipfile in a context; remove duplicate imports, use compiled re pattern for searching :: symonk
    • 2d8f51d0fe - [py] update xfail for window positioning tests on Firefox :: titusfortner
    • 058d516f0e - [rb] update spec guards :: titusfortner
    • 8ee95718a4 - [dotnet] add cdp v105 remove v102 :: titusfortner
    • 5dbc02f19b - [rb] add cdp v105 remove v102 :: titusfortner
    • e7b0a8e40a - [py] add cdp v105 remove v102 :: titusfortner
    • 98284e86e5 - [js] add cdp v105 remove v102 :: titusfortner
    • 0de81eef82 - [java] add cdp v105 remove v102 :: titusfortner
    • 0f4edb70e7 - [cdp] add definition files for v105 :: titusfortner
    • 323fedb82f - [build] Updating bazelisk to 1.13.0 :: Diego Molina
    • fd9d8d8932 - [py]: Simplify some pointer_input code :: symonk
    • a7ddecafe2 - [py]: Remove redundant return clauses, use snake_case for some private proxy methods :: symonk
    • c21d220630 - [py]: Add no-op placeholder recipe for isort in tox :: symonk
    • 011e931f54 - [py]: implicitly iterate dictionaries without specifying keys() in places :: symonk
    • 6b4b9f8678 - [py]: use cls for class methods; be explicit with open(..., encoding=...) :: symonk
    • 32d2a50d61 - [py]: Stop trying to export Opera in __all__ of the webdriver parent package :: symonk
    • c24ca170ca - [py]: remove alot of redundant else clauses throughout :: symonk
    • 96eaad4110 - [py]: use str(...) in place of __str__(...) :: symonk
    • a29c5843c1 - [py]: Remove unnecessary list comprehensions in actions :: symonk
    • bad1b4cbfd - [py]: add checks for non compliant imports in python3.7+ :: symonk
    • 2e059e0314 - [py]: minor types, avoid import names for variables, simplify int or float checks in keys_to_typing :: symonk
    • bef96e6410 - [JS] Update changelog :: harsha509
    • 2618e8efb4 - minor types for AbstractEventListener :: symonk
    • 0f9e6be542 - [py]: Additional types for event_firing_webdriver.py :: symonk
    • 024d863a56 - [JS] Set min node support to 14.x.x :: harsha509
    • a9dc68bad7 - [py]: Add return types to dunder __init__ in places :: symonk
    • bcbf432b6b - [py]: Options now returns bool values for various properties when not set rather than None :: symonk
    • 2ce00fcceb - [py]: Update python changelog for 4.5.0 :: symonk
    • 6f77a1e463 - [py]: Deprecate non W3C capability implicit conversion :: symonk
    • d1818d70a6 - [java] Set protected as ClientConfig constructor instead of private (#10985) :: Kazuaki Matsuo
    • 44d398ae65 - Synchronize on the underlying websocket (#10976) :: Simon Stewart
    • 1a5b24ceb9 - [grid] Updating Grid JS deps :: Diego Molina
    • b296822900 - Bump bazel to 5.3.0 (#10981) :: Simon Stewart
    • ff88671fb8 - #10812 don't allow selecting a disabled option (#10814) :: Andrei Solntsev
    • 4b19fa416b - [grid] Removing event bus role from session queue :: Diego Molina
    • 894ffd9dc5 - [JS] Run tests with node 16.x in CI (#10979) :: Sri Harsha
    • 631b2295d4 - Use a URL for rules_jvm_external where the contents won't change :: Simon Mavi Stewart
    • cf01987cc9 - Fix Grid UI by patching rules_jvm_external :: Simon Mavi Stewart
    • 51095a4612 - chore/code style changes, add util (#10975) :: Potapov Dmitriy
    • 878feb7fcf - [py]: Sweeping typing improvements for all property setters :: symonk
    • 5604523e65 - [py]: Fix flake8 violations :: symonk
    • b940299758 - fix: geckodriver session with node 18.x.x (issue 2 in #10970) :: harsha509
    • af5ab009fa - Bump all java deps :: Simon Mavi Stewart
    • fac1ac2ee1 - Tighten visibility of rules in the support package :: Simon Mavi Stewart
    • a77be0599a - Roll the pinned browser versions :: Simon Mavi Stewart
    • 2da79fb62e - Bump htmlunit to 2.64.0 :: Simon Mavi Stewart
    • 1c5fe11397 - [JS] Fix window test in firefox :: harsha509
    • 32c699d92e - Run ./go copyright:update :: Simon Mavi Stewart
    • 634637d473 - Bump rules_jvm_external to 4.3 :: Simon Mavi Stewart
    • 1aba14e9c1 - [rb] Remove unnecessary and bug-creating code in platform.rb. (#10973) :: ch-saeki
    • 000c2cf10d - chore/code style changes to common format (#10964) :: Potapov Dmitriy
    • f4ce77d24e - [JS] destructuring exports :: harsha509
    • 741dbf61a8 - [JS] Quit driver instance after each test :: harsha509
    • 6ad88d3825 - Fix frame_to_be_available_and_switch_to_it() for string inputs (#10967) :: Michael Mintz
    • ce2ee20de5 - feat(java): add webdriver.edge.loglevel (#10962) :: Kazuki Higashiguchi
    • 2b98f9b015 - [py] Fix - Adding retries to Python CI :: Diego Molina
    • 9edcd4654f - [py] Adding retries to Python CI :: Diego Molina
    • 3c6d27c37f - [py]: fixes flake8 violations in virtual_authenticator.py :: symonk
    • e12972ec0f - [py]: fix alot of mypy complaints :: symonk
    • e142d5d028 - [py]: additional type hints for interaction.py :: symonk
    • ab901a5a01 - [py]: Remove unnecessary else clause in element_to_be_clickable(...) :: symonk
    • 08894862c3 - [py]: tidy up some pylint violations; update to use more fstrings :: symonk
    • 82d7891a44 - [py]: use f strings in place of %s :: symonk
    • 845e47d43f - [JS] Adds mouse button enum for forward and backward navigation :: harsha509
    • 7295d54216 - [java] Removing Opera leftovers :: Diego Molina
    • 912b4a4822 - [build] Updating bazelisk :: Diego Molina
    • bb0b3b24ca - [py]: loosen required versions of "certifi" (#10958) :: Michael Mintz
    • 59d7baec6d - [JS] Adds select by multiple(index,value, text) tests :: harsha509
    • 9955c130fa - [java] Remove Opera related classes (#10950) :: Puja Jagani
    • a344d2735e - [py] update python changelog :: AutomatedTester
    • 54809a701b - [py] Bump Python Bindings to 4.4.2 :: AutomatedTester
    • 35adf8bef5 - [JS] Adds 'Select' support package :: harsha509
    • 4b4ce7b7c8 - [py]: Bump version for 4.4.1 :: symonk
    • d0b95a04a5 - [grid] Adding handler for options when using cors and creating a session :: Diego Molina
    • 67d544bdee - [JS] Add support for Actions API sendKeys to designated element :: harsha509
    • 9b012df78d - Add a JDK 11 HTTP client (#10936) :: Simon Stewart
    • 9656da70e5 - [grid] Sending a DELETE when a session times out. :: Diego Molina
    • 829e47681a - [java] Setting a high max redirects :: Diego Molina
    • ffa9f47424 - [grid] Removing grid-model flag. Is not being used. :: Diego Molina
    • 797a859d98 - [java] Improving default matcher to enable Appium :: Diego Molina
    • c88455095d - [py]: fix flake8 violations for W391 :: symonk
    • 702c12ab85 - [py]: more unit test coverage for script keys :: symonk
    • 4440ea0bd6 - [py]: repr for script keys, types and nicer error when unpinning unknown keys and unit tests :: symonk
    • 95f0cba280 - [py]: Remove deprecated urllib3[secure] extras dependency (#10932) :: V24
    • b1543cff74 - [web] need to be able to scroll to the bottom of this page :: titusfortner
    • 3738c97dbf - [java] Removing host info for most cases, except SessionNotCreatedException :: Diego Molina
    • 9f4f47ef6e - [java] Changing message when session is not found in Grid :: Diego Molina
    • 20b6957f75 - Include sample web form :: Boni Garcia
    • 1aa7c59b06 - [java] Removing IME :: Diego Molina
    • b8ede333be - [js] Moving from static to const to make js-dossier happy :: Diego Molina
    • f5f288767f - [js] Removing circular dependency :: Diego Molina
    • afe28847f3 - [java] Fix typo in release notes for v4.4.0 (#10935) :: Guille
    • 4ed89beda0 - Add missing uses from the remote webdriver jar :: Simon Mavi Stewart
    • c927a5b65b - Add missing keywords to invocation of java_export :: Simon Mavi Stewart
    • 91a1ab1f3d - [java] Removing deprecated ForSeleniumServer caps :: Diego Molina
    • 4747fe7e50 - [java] Removing deprecated BrowserType.java :: Diego Molina
    • a6f8028b5c - [dotnet] Handle the case when http response content type might be null (#10929) :: Nikolay Borisenko
    • f7c2f029a6 - Run buildifier. No logical changes :: Simon Mavi Stewart
    • d56c876e34 - Update pinned browsers :: Simon Mavi Stewart
    • aea58858d9 - [rb] Amending changelog for 4.4.0 :: Diego Molina
    Source code(tar.gz)
    Source code(zip)
    IEDriverServer_Win32_4.5.0.zip(1.03 MB)
    IEDriverServer_x64_4.5.0.zip(1.12 MB)
    selenium-dotnet-4.5.0.zip(24.98 MB)
    selenium-dotnet-4.5.1.zip(15.76 MB)
    selenium-dotnet-strongnamed-4.5.0.zip(13.90 MB)
    selenium-dotnet-strongnamed-4.5.1.zip(6.97 MB)
    selenium-java-4.5.0.zip(21.39 MB)
    selenium-java-4.5.1.zip(21.47 MB)
    selenium-java-4.5.2.zip(21.48 MB)
    selenium-java-4.5.3.zip(21.47 MB)
    selenium-server-4.5.0.jar(23.60 MB)
    selenium-server-4.5.0.zip(51.06 MB)
    selenium-server-4.5.1.jar(23.84 MB)
    selenium-server-4.5.1.zip(51.28 MB)
    selenium-server-4.5.2.jar(23.84 MB)
    selenium-server-4.5.2.zip(51.28 MB)
    selenium-server-4.5.3.jar(23.84 MB)
    selenium-server-4.5.3.zip(51.28 MB)
  • selenium-4.4.0(Aug 9, 2022)

    Changelog

    For each component's detailed changelog, please check:

    Commits in this release

    Click to see all the commits included in this release
    • 3e70fc51c3c - [py] Bumping to 4.3.0 :: Diego Molina
    • 209d778c892 - [javascript] Bumping to 4.3.0 :: Diego Molina
    • 55714150419 - [grid] Fixing env var name to stream VNC :: Diego Molina
    • 3b3a3edf36a - [dotnet] remove obsolete TouchActions class :: titusfortner
    • 2fbfc62f565 - [dotnet] remove obsolete commands :: titusfortner
    • 7949433994c - [JS] Updated jsdoc for move action (#10816) :: praveendvd
    • 78f2b1ef68c - [grid] Updating JS deps :: Diego Molina
    • 00fce383436 - [JS] Update rules_nodejs to 5.5.1 :: harsha509
    • 334a10350fe - [web] add index to webpages (#10640) :: Titus Fortner
    • cc79de69690 - [java] Putting all valid IEOptions only in se:ieOptions :: Diego Molina
    • 7a13e937a5f - [java] Fixing - put all valid IEOptions only in se:ieOptions :: Diego Molina
    • de0a144b923 - Use which() to get Firefox path on Mac OS (#10818) :: Bogdan Condurache
    • 4ad053312fd - #10810 pick the right target using given window handle (#10811) :: Andrei Solntsev
    • 2d0c733ac47 - Fix RuboCop configuration :: Alex Rodionov
    • 8645cafd33e - Bump bazel-contrib/rules_jvm to v0.4.0 (#10829) :: Boni García
    • ed7d29eb07a - [grid] Saving Selenium logs in Dynamic Grid :: Diego Molina
    • ae46fd8eb45 - [java] Adding more exceptions to spotbugs :: Diego Molina
    • 632849cb88d - [JS] kill chromium service on quit (#10796) :: Ravi Sawlani
    • 0c2b60532ee - [java] Removing filter for lint, not needed in browser tests :: Diego Molina
    • daa04231c49 - [java] Removing makeW3CSafe from NewSession CommandPayload :: Diego Molina
    • 943081bd8f6 - [dotnet] Add Virtual Authenticator support (#10772) :: Puja Jagani
    • 5532a8d5c0d - [py] Remove assertion for python version check (#10815) :: jsfehler
    • cd3af6e5fa3 - correctly checks the driver supports DevTools (#10819) :: elgatov
    • 54b8568c665 - [grid] Updating JS deps :: Diego Molina
    • 71cccff7446 - Correctly generate test suites and all targets for java selenium tests :: Simon Mavi Stewart
    • b9252637d65 - Repin browsers and drivers :: Simon Mavi Stewart
    • 8487998201c - Run buildifier :: Simon Mavi Stewart
    • f2b65eb4a00 - [build] Bump rules_python to 0.10 :: AutomatedTester
    • 0a2a4a93ea0 - [java] Add status endpoint :: Puja Jagani
    • 8e24d937238 - [java] Formatting changes in test classes :: Puja Jagani
    • a6b161a159c - [atoms] Add shadow dom visible text tests :: AutomatedTester
    • 09e296c30b5 - Cleanup docstrings, fix broken formatting (#10838) :: jsfehler
    • fb4df665ab8 - [java] Add ability to decorate child classes of WebDriver (#10737) :: Valery Yatsynovich
    • ca2f0f955de - [build] Bump bazel to 5.2 :: AutomatedTester
    • aaa20ba9121 - [java] Improving javadocs for DevTools.java :: Diego Molina
    • 9cf01a34c4a - [java] Making Java tests compile until we find a better alternative :: Diego Molina
    • 5294269c1de - [grid] Setting DEFAULT_RETRY_INTERVAL to 15s and avoid hardcoded values :: Diego Molina
    • 7b1c6461f61 - [JS] Bump to 4.3.1. :: AutomatedTester
    • dcb27c1d837 - Adding GitPod Config (#10855) :: Diego Molina
    • 226a5b5cfc6 - [grid] Updating JS deps :: Diego Molina
    • 72967823909 - [IEDriver] fix Edge IE mode issue that sometimes cannot get the handle of a newly opened window (#10702) :: Yusuke Noda
    • 989c5644d31 - Disable popup blocking for Edge in IE Mode (#10869) :: Brandon Walderman
    • bb23fba720c - Remove require of websocket in selenium-devtools gem (#10868) :: Kevin Dew
    • 5eb4e45f81d - Extract network interceptor into a separate class :: Alex Rodionov
    • 0916b2c1c9a - Track cancelled requests so that network interceptor would ignore them :: Alex Rodionov
    • 98f533238e9 - Track WebSocket messages with optimal memory and thread-safety :: Alex Rodionov
    • 4aebd9c6a3c - Truncate WebSocket logger messages :: Alex Rodionov
    • c0fa00f9722 - [dotnet] Handle unsuccessful http requests properly (#10807) :: Nikolay Borisenko
    • 4fc1de040d2 - [dotnet] set proper status when creating response :: titusfortner
    • 7f40eec0b7a - [dotnet] add additional context info to unexpected errors in responses :: titusfortner
    • 21c693d4821 - update docs for PointerActions#move_to (#10872) :: Robert Fletcher
    • 545355d40d6 - [py]: use native mapping .get(...) in error handler :: symonk
    • 38f8501456c - [py]: Address flake8 violations and remove unused imports :: symonk
    • e66e00cedb1 - [iedriver] update changelog and bump version to 4.3.0 :: titusfortner
    • 50b0bfc0727 - [rb][cdp] update devtools version to 0.103.1 :: titusfortner
    • 2eab06275b5 - [dotnet] add the new VirtualAuth directory to sources in bazel libraries :: titusfortner
    • 6222bb2a1fc - [dotnet] Add bazel dependency for Virtual Authenticator :: Puja Jagani
    • 21a39ab6f2a - [dotnet] add identity logging and abstraction packages :: titusfortner
    • c7be1be9e10 - [dotnet] add missing identity abstractions dependencies :: titusfortner
    • 6f082ed6c3d - [dotnet] allow disabling build check between chromium browser and driver (#10898) :: titusfortner
    • 69f46da9ea1 - [dotnet] Update Newtonsoft.Json package to v13.0.1 (#10900) :: Yevgeniy Shunevych
    • 6e11e18857c - [grid] Updating JS deps :: Diego Molina
    • 93ee789ccde - Bump terser from 5.10.0 to 5.14.2 (#10889) :: dependabot[bot]
    • 036ee7f6aec - Bump terser from 5.13.1 to 5.14.2 in /javascript/grid-ui (#10894) :: dependabot[bot]
    • 2f93cc4d7d0 - [java] Fix indentation :: Puja Jagani
    • dd37ae528f7 - [java] Replace OpenTelemetry deprecated method :: Puja Jagani
    • a535a410006 - [java] Upgrade OpenTelemetry version :: Puja Jagani
    • e97153bbb97 - [java] Fix indentation :: Puja Jagani
    • 90255c1f3a6 - [JS] Updating rules nodejs to 5.5.3 :: harsha509
    • f70ac4372a1 - [java] Fix tracing event-logs for error situations :: Puja Jagani
    • 7ce42b7f995 - [java] Add logs to DriverServiceSessionFactory :: Puja Jagani
    • a9a526eae41 - [grid] No need to register a Node that is DOWN :: Diego Molina
    • 14242af3d40 - [grid] Default to Node healthcheck instead of initial status endpoint check :: Diego Molina
    • ffe5a79fedc - [py] Making tox pass :: Diego Molina
    • a64357f590f - [grid] Updating JS deps :: Diego Molina
    • 588541da8e2 - [CDP] Adding definition files for v104 :: Diego Molina
    • 2004779bf2b - [java] Adding CDP v104 :: Diego Molina
    • 7ce15dbb93d - [py] Adding CDP v104 :: Diego Molina
    • fa3736dfbbe - [rb] Adding CDP v104 :: Diego Molina
    • a87bd3e12bb - [js] Adding CDP v104 :: Diego Molina
    • 5e5f72984d4 - [dotnet] Adding CDP v104 :: Diego Molina
    • 53253157d6d - [rb] fix: setting w3c: false throws error (#10918) :: Tamsil Sajid Amani
    • cd3e9aea526 - [grid] Forwarding requests with non-W3C locators :: Diego Molina
    • 994ab87b2c1 - [rb] move w3c checks to Options class :: titusfortner
    • 4362aa1a339 - [rb] update to latest rubocop and fix issues :: titusfortner
    • 227137bc44f - [rb] Add virtual authenticator (#10903) :: Tamsil Sajid Amani
    • 930edbd8611 - [rb] update virtual auth credential implementation to match conventions :: titusfortner
    • 13975e0df8a - [rb] update virtual auth implementation to match conventions :: titusfortner
    • 1d723de63c8 - [dotnet] no longer need to send OSS element :: titusfortner
    • a52bfcd8a5b - [py] throw error when setting w3c to False #10908 :: titusfortner
    • d830a1393ef - [dotnet] mark UseSpecCompliantProtocol obsolete and throw error when false (#10448) :: titusfortner
    • 2af04d4cc40 - [java] update warning for setting w3c: false (#10448) :: titusfortner
    • 5b62f2fd6ba - [rb] virtual auth credentials command arguments in wrong order :: titusfortner
    • b1c27004930 - upgdate changelogs for 4.4.0 :: titusfortner
    • ad0216040f1 - [java] Revert - Add status endpoint :: Diego Molina
    • f91fec5cd1c - [java] Throwing when a user sets w3c: false in ChromeOptions :: Diego Molina
    • 0d388753138 - [py] build(setup.py): Add project_urls for PyPI (#10880) :: Tony Narlock
    • 2d36450df88 - [java] Amending changelog for 4.4.0 :: Diego Molina
    • e5c75ed026a - Bumping version in bindings to 4.4.0 :: Diego Molina
    Source code(tar.gz)
    Source code(zip)
    selenium-dotnet-4.4.0.zip(24.78 MB)
    selenium-dotnet-strongnamed-4.4.0.zip(13.80 MB)
    selenium-java-4.4.0.zip(21.17 MB)
    selenium-server-4.4.0.jar(23.57 MB)
    selenium-server-4.4.0.zip(50.68 MB)
  • selenium-4.3.0(Jun 23, 2022)

    Changelog

    For each component's detailed changelog, please check:

    Commits in this release

    Click to see all the commits included in this release
    • fe6bc9952f4 - [IE] update changelog and bump version to 4.2.0 :: titusfortner
    • 49ea73c758e - Fix unreleased note in Ruby changelog (#10713) :: Pavel Lobashov
    • 67dba3e1801 - [java] Avoid checking for non W3C twice. :: Diego Molina
    • 8e7983f7d43 - [java] Removing usage of deprecated caps in DesiredCapabilities :: Diego Molina
    • ad2e2765618 - [java] Removing deprecation for STRICT_FILE_INTERACTABILITY :: Diego Molina
    • 65cb657efd2 - [java] Removing old browser options strings :: Diego Molina
    • 14651c78ec2 - [java] Removing unused import :: Diego Molina
    • 33346076f11 - [java] Removing deprecated caps from response :: Diego Molina
    • c8da7c2d2ad - [java] Making sure "loggingPrefs" only affects Chrome :: Diego Molina
    • 3f794a036ca - [java] Removing more usages of deprecated "platform" capability. :: Diego Molina
    • 2c66554f266 - [java] Adding one more exception for #10711 :: Diego Molina
    • f2e40dc9867 - [grid] Updating testing library deps :: Diego Molina
    • 1c2240df9d7 - [JS] feat: Added virtual authenticator (#10663) :: Tamsil Sajid Amani
    • 52845c30e7f - [java] Adding LOGGING_PREFS to Edge and Chrome options :: Diego Molina
    • ac4d0fdd4a3 - [java] Bumping Java to 4.2.1 and updating CHANGELOG :: Diego Molina
    • d1126b72e16 - [grid] Updating material UI libs :: Diego Molina
    • f677d2d24fe - [grid] Updating typescript :: Diego Molina
    • 6652c1a0bde - [rb] fix bug in default durations :: titusfortner
    • 1570bb3c829 - [rb] update changelog and bump version for 4.2.1 :: titusfortner
    • 00add3506ff - [py] allow setting pointer event attributes in move_by() and move_to_location() :: titusfortner
    • 6afbbcf4006 - [py]: fix flake8 violations in trunk (#10723) :: Simon K
    • 60bf8e40c37 - [py] allow specifying which button gets clicked in pointer action class methods :: titusfortner
    • b0057b54cff - [rb] allow specifying which button gets clicked in pointer action class methods :: titusfortner
    • 6d2a7829f9b - [JS] Fixes lint issues and updates npm packages :: harsha509
    • 34d593f6572 - Add a html page for testing BiDi logEntryAdded events :: Puja Jagani
    • 307673b8947 - [JS] Remove unused param in input.js & minor code cleanup :: harsha509
    • 7bd9b067c09 - [grid] Updating Grid JS deps :: Diego Molina
    • e5a566a5673 - [grid] Reverting pretty-ms upgrade :: Diego Molina
    • 9435a8ae4d3 - [java] Throwing warnings for non-W3C before creating session (#10741) :: Diego Molina
    • 247abe73fd0 - [java] Removing exceptions from accepted W3C caps :: Diego Molina
    • a84d600638d - Adding config for SafariDriver in label commenter :: Diego Molina
    • 38e89630f1c - fix: update ExpectedCondition to extend java util Function (#10695) :: Branden Cash
    • 4bbb7c255ae - [py]: remove deprecated find_element_by_ methods (#10712) :: Simon K
    • 1c5eee468bf - [java] don't abandon driver :: titusfortner
    • 735ba4f8c04 - [java] can't modify an unmodifiable map :: titusfortner
    • aadc158aa0d - [java] do not start test driver when @NoDriverBeforeTest set :: titusfortner
    • da43407f700 - [java] fix has debugger implementation :: titusfortner
    • 263d346d398 - [java] Do not start multiple browsers in tests when not necessary using @NoDriverBeforeTest :: titusfortner
    • ab555c47880 - [java] Fixing SafariTechPreview :: Diego Molina
    • 79f2b20ed37 - [JS] Fix dependabot alerts :: harsha509
    • 939185a499d - [grid] Updating Grid JS deps :: Diego Molina
    • 8b92d869e4e - Run buildifier over the tree :: Diego Molina
    • 75637052827 - Removing @bazel/buildifier and @bazel/ibazel :: Diego Molina
    • 683ccb65d6d - [java] Bumping Java to 4.2.1 and updating CHANGELOG :: Diego Molina
    • a969654c00f - Remove flag for network (#10751) :: Diego Molina
    • be408c02a10 - [py]: remove redundant actions array of action_chains (#10716) :: Simon K
    • 7c924688741 - [py] Additional types and tweaks for remote webdriver (#10631) :: Simon K
    • f9018c6f113 - [java] Run tests on the JUnit Platform (JUnit 5) (#10752) :: Boni García
    • de9675b8777 - [py]: Additional types for element fetching methods (#10662) :: Simon K
    • 27ff5866dc1 - [py]: Remove unused arg resolve_ip from RemoteConnection initialiser (#10717) :: Simon K
    • 890f74eb984 - [py] additional type hints in wait.py & command.py (#10627) :: Simon K
    • 05467b6cc88 - [py]: Tweaks to select.py for pythonic naming and types (#10756) :: Simon K
    • 7f0c5633f19 - [java] Remove deprecated methods that use capabilities in WebDrivers (#10427) :: Puja Jagani
    • e3089c96279 - [java] Removing deprecated Actions implementations :: Diego Molina
    • 4dcc9c44f1a - [java] Complete removal of deprecated Actions commands :: Diego Molina
    • 25564bda8a6 - [java] Removing deprecated getPlatform and getVersion :: Diego Molina
    • 9a52775cc41 - [java] Adding exceptions to spotbugs config :: Diego Molina
    • bb8a3d5594b - [py]: Update selenium server docs to 4.2.2 :: Simon K
    • 946f5727ffb - Removing @types/enzyme :: Diego Molina
    • 5ad59d27cb5 - [grid] Updating Grid JS deps :: Diego Molina
    • 4c74183e447 - [java] Removing a few non-W3C ways of matching browsers :: Diego Molina
    • a6359ebb4a1 - [java] Add support for BiDi log event (#10696) :: Puja Jagani
    • d44b82eb4b1 - [java] Enabling BiDi test for Firefox :: Diego Molina
    • 99217789cbf - [java] Warning when user sets w3c: true in goog:chromeOptions :: Diego Molina
    • 65b7a240185 - [java] Amending logic to warn users when w3c: true in goog:chromeOptions :: Diego Molina
    • a4146c00d3a - [py]: Find latest version of devtools when requested version does not exist on disk (#10749) :: Simon K
    • 31cc4320998 - [py] python3.7+ syntax throughout *.py files. (#10647) :: Simon K
    • 17907d38c8e - [py] remove opera (#10630) :: Simon K
    • d68617a11a5 - [py]: More python3.7 improvements :: symonk
    • 1b1058ab4c2 - [py]: Remove unused imports in webelement.py :: symonk
    • 40c16bb016f - [py]: Enable co-operative multi inheritance with super() throughout (#10773) :: Simon K
    • 4fbd4a2ce16 - [grid] Passing env vars along to child containers :: Diego Molina
    • 5713de42247 - [grid] Adding native ARM support for sockets :: Diego Molina
    • 9fac7d5b380 - [java] Add preferences when retrieving from a file :: Puja Jagani
    • 4fb6736911f - [py]: Fix types on debugger_address incorrectly being str :: symonk
    • 744b4bd677b - [py]: Fix return types for some chromium driver methods :: symonk
    • 38bf1e462a4 - [py]: Use correct imports from urllib :: symonk
    • ae62ba00656 - [java] Migrate all tests to JUnit Jupiter (JUnit 5) (issue #10196) (#10778) :: Boni García
    • dd72283aeaf - [py]: Open chromium extension files inside context managers for auto closing :: symonk
    • ab456d13174 - [py]: Improved types for Chromium remote connection :: symonk
    • 9de853d91ad - [py]: avoid unnecessary concatenation of sequences in get_remote_connection :: symonk
    • a268142a451 - [java] Restore Closure Java classes required for JavaScript build (#10785) :: Boni García
    • 43361aae764 - [java] Migrate base for Closure tests to JUnit Jupiter (JUnit 5) (#10786) :: Boni García
    • 385aaed2e1b - [java] Update bazel files for BiDi log package :: Puja Jagani
    • 59ca70cd1f1 - [java] Add BiDi augmenter support (#10789) :: Puja Jagani
    • 02363b148c6 - [grid] Updating Grid JS deps :: Diego Molina
    • 95fed4f0b8c - [java] Adding RemoteWebDriverBiDiTest to large tests :: Diego Molina
    • 01fe86e6051 - [java] Updating dependencies :: Diego Molina
    • cc00a3cec8b - [java] Fix unsubscribe event BiDi API methods :: Puja Jagani
    • 57d3fc16265 - [CDP] Adding pdl files for v103 :: Diego Molina
    • d10627b2161 - [java][cdp] Add support CDP 103 and remove CDP 100 :: Diego Molina
    • f7ff4bcd9c7 - [py][cdp] Add support CDP 103 and remove CDP 100 :: Diego Molina
    • 5dfd3216c08 - [rb][cdp] Add support CDP 103 and remove CDP 100 :: Diego Molina
    • 776cb827c87 - [javascript][cdp] Add support CDP 103 and remove CDP 100 :: Diego Molina
    • 0ca6b540d81 - [java] Allow linting only on the default test (#10792) :: Boni García
    • 3e8f94c307e - [dotnet][cdp] Add support CDP 103 and remove CDP 100 :: Diego Molina
    • 6e87b0840e0 - [java] Cleanup after migration to JUnit 5 (#10793) :: Boni García
    • 3e993dfe9b9 - Update tracing.txt :: Puja Jagani
    • 0c7bf07856e - [java] Add JUnit5 support for BiDiLogTest :: Puja Jagani
    • 1d1e261c924 - [JS] Fix: using fulfillRequest when intercepting (#10764) :: Tamsil Sajid Amani
    • 3529ba5eb0d - [rb] remove deprecated Persistent http class :: titusfortner
    • b2d4a1cbe6d - [rb] remove deprecated HasRemoteStatus module :: titusfortner
    • 8eab87d8604 - [rb] remove deprecated new_window from Manager class :: titusfortner
    • c6cc197df70 - [rb] fix inconsistency so #move_to always moves to in-view center of element :: titusfortner
    • 2a9823612cf - [rb] driver constructor no longer accepts service parameters only service objects :: titusfortner
    • c9fe4923275 - [rb] remove deprecated setter and getter methods for driver path in browser modules :: titusfortner
    • 8747489fa6c - [rb] remove deprecated #logs from manager class :: titusfortner
    • 05c2a5a51a3 - [rb] no longer allow options parameter in options class constructors :: titusfortner
    • b40ddebe938 - [rb] remove deprecated functionality from capabilities :: titusfortner
    • 30ab8b3e13f - [dotnet] remove deprecated GetProperty() :: titusfortner
    • 1556e8616f9 - [dotnet] remove deprecated ExecuteChromeCommand methods :: titusfortner
    • 927e5af6ed3 - [dotnet] remove deprecated AddAdditionalCapability :: titusfortner
    • 5673c437faa - [dotnet] remove deprecated methods that have no effect :: titusfortner
    • a66def212b4 - [dotnet] remove deprecated locator functionality :: titusfortner
    • 24a57414276 - [dotnet] remove deprecated html5 commands and classes for web storage, application cache and location context :: titusfortner
    • fbfb491b9f2 - [dotnet] only support moving to center of element :: titusfortner
    • 8b733d23187 - [dotnet] change minimum window size targets in tests :: titusfortner
    • c33c1498a65 - [dotnet] remove obsolete directories from bazel build files :: titusfortner
    • 826c93c82f5 - Bump Newtonsoft.Json from 12.0.3 to 13.0.1 in /dotnet/src/webdriver (#10797) :: dependabot[bot]
    • 7447b05424e - Bump Newtonsoft.Json from 12.0.3 to 13.0.1 in /dotnet/test/common (#10798) :: dependabot[bot]
    • 564d3006939 - [rb] update changelog and bump version to 4.3.0 :: titusfortner
    • cd478a10a93 - [dotnet] update changelog and bump version to 4.3.0 :: titusfortner
    • fc742cfc049 - [JS] Update changelog and bump version to 4.3.0 [skip ci] :: harsha509
    • 5d548aa3ed0 - [java] Improving query to exclude 'no-lint' tests :: Diego Molina
    • 009e7848890 - [java] Bumping Java to 4.3.0 and updating CHANGELOG :: Diego Molina
    • d09259a82ef - [java] Not linting remote tests. :: Diego Molina
    • 64a04f8bf7c - [py] offsets for moving to an element will originate from in-view center point :: titusfortner
    • fcd5193fb7a - [py] remove warnings import :: titusfortner
    • a59115cff13 - [py]: Correct and additional types for shadowroot.py :: symonk
    • a4995e2c096 - [py]: Update changelog for 4.3 :: symonk
    Source code(tar.gz)
    Source code(zip)
    IEDriverServer_Win32_4.3.0.zip(1.03 MB)
    IEDriverServer_x64_4.3.0.zip(1.12 MB)
    selenium-dotnet-4.3.0.zip(24.53 MB)
    selenium-dotnet-strongnamed-4.3.0.zip(5.87 MB)
    selenium-java-4.3.0.zip(21.13 MB)
    selenium-server-4.3.0.jar(23.54 MB)
    selenium-server-4.3.0.zip(50.59 MB)
Owner
Selenium
Selenium is an umbrella project for a range of tools and libraries that enable and support the automation of web browsers.
Selenium
🔌 Simple library to manipulate HTTP requests/responses and capture network logs made by the browser using selenium tests without using any proxies

Simple library to manipulate HTTP requests and responses, capture the network logs made by the browser using selenium tests without using any proxies

Sudharsan Selvaraj 29 Oct 23, 2022
Appium Mobile Automation Framework

Appium Mobile Automation Framework Framework for Mobile test automation (Native app and Browser) on Android and IOS devices ?? ?? Quick Start - Appium

Thangaraj 40 Nov 18, 2022
Framework for Mobile test automation using Appium with Java - BDD

appium-mobile-automation-framework-bdd Mobile automation framework using appium - BDD ?? Quick Start - Appium set up on Windows (Android): Install Jav

Thangaraj 18 Oct 19, 2022
A headless browser written in Java.

A headless browser written in Java.

Osiris-Team 99 Nov 19, 2022
Puppeteer/Playwright in Java. High-Level headless browser.

HBrowser Another headless browser for Java with Puppeteer and Playwright implemented. Add this to your project with Maven/Gradle/Sbt/Leinigen (Java 8

Osiris-Team 99 Nov 19, 2022
A sample repo to help you clear browser cache with Selenium 4 Java on LambdaTest cloud. Run your Java Selenium tests on LambdaTest platform.

How to clear browser cache with Selenium 4 Java on LambdaTest cloud Prerequisites Install and set environment variable for java. Windows - https://www

null 12 Jul 13, 2022
Clear browser cache by running Selenium tests with JUnit on LambdaTest cloud.

Run Selenium Tests With JUnit On LambdaTest (Browser Cache Clearing Example) Blog ⋅ Docs ⋅ Learning Hub ⋅ Newsletter ⋅ Certifications ⋅ YouTube      

null 16 Jul 11, 2022
Roman Beskrovnyi 245 Nov 18, 2022
Serenity BDD is a test automation library designed to make writing automated acceptance tests easier, and more fun.

That feeling you get when you know you can trust your tests Serenity BDD is a library designed to make writing automated acceptance tests easier, and

Serenity BDD 652 Nov 25, 2022
A powerful open source test automation platform for Web Apps, Mobile Apps, and APIs

A powerful open source test automation platform for Web Apps, Mobile Apps, and APIs. Build stable and reliable end-to-end tests @ DevOps speed.

Testsigma Technologies Inc 430 Dec 1, 2022
Ready-to-use UI Test Automation Architecture using Java and Selenium WebDriver.

Selenium Test Automation Boilerplate Ready-to-use UI Test Automation Architecture using Java and Selenium WebDriver. Languages and Frameworks The proj

Tahanima Chowdhury 124 Nov 9, 2022
Restful-booker API test automation project using Java and REST Assured.

Restful-booker API Test Automation Restful-booker API is an API playground created by Mark Winteringham for those wanting to learn more about API test

Tahanima Chowdhury 7 Aug 14, 2022
Test Automation Made Simple

Karate Test Automation Made Simple. Karate is the only open-source tool to combine API test-automation, mocks, performance-testing and even UI automat

Intuit 6.5k Dec 8, 2022
Enabling Test Automation in Java

SeLion Enabling Test Automation in Java SeLion builds on top of TestNG and Selenium to provide a set of capabilities that get you up and running with

PayPal 267 Nov 23, 2022
🎉Back end module of Sonic UI automation testing platform. Sonic-UI自动化测试平台后端模块。

?? Sonic UI automation testing platform. English | 简体中文 Background What is sonic ? Nowadays, automation testing, remote control and other technologies

Eason 1.5k Nov 27, 2022
Test Automation Made Simple

Karate Test Automation Made Simple. Karate is the only open-source tool to combine API test-automation, mocks, performance-testing and even UI automat

Karate Labs 6.5k Dec 1, 2022
This is an experiment project I used to learn more about UI Automation with Playwright

Automated Wordle using Playwright (Java) This is an experiment project I used to learn more about UI Automation with Playwright. What's in this reposi

Tom Cools 4 Jan 30, 2022
🎉Ultimate test automation for testing any application on any platform

boyka-java Ultimate test automation for testing any application on any platform boyka-java Setup Write conventional commits 1.

Wasiq Bhamla 47 Nov 22, 2022
Web automation example code of tests running parallely

Don't forget to give a ⭐ to make the project popular. ❓ What is this Repository about? This repo contains example code to run a single test parallely

Mohammad Faisal Khatri 1 Apr 3, 2022