diff --git a/.github/workflows/python-examples.yml b/.github/workflows/python-examples.yml index 60fc47bc2feb..996798294969 100644 --- a/.github/workflows/python-examples.yml +++ b/.github/workflows/python-examples.yml @@ -28,22 +28,22 @@ jobs: include: - os: ubuntu release: stable - python: '3.9' + python: '3.10' - os: ubuntu release: nightly - python: '3.11' + python: '3.14' - os: windows release: stable - python: '3.9' + python: '3.10' - os: windows release: nightly - python: '3.12' + python: '3.14' - os: macos release: stable python: '3.10' - os: macos release: nightly - python: '3.13' + python: '3.14' runs-on: ${{ format('{0}-latest', matrix.os) }} steps: - name: Checkout GitHub repo diff --git a/examples/dotnet/SeleniumDocs/BiDi/CDP/NetworkTest.cs b/examples/dotnet/SeleniumDocs/BiDi/CDP/NetworkTest.cs index 325092813e06..2bec43fe39bd 100644 --- a/examples/dotnet/SeleniumDocs/BiDi/CDP/NetworkTest.cs +++ b/examples/dotnet/SeleniumDocs/BiDi/CDP/NetworkTest.cs @@ -4,8 +4,8 @@ using OpenQA.Selenium; using OpenQA.Selenium.DevTools; using System.Linq; -using OpenQA.Selenium.DevTools.V137.Network; -using OpenQA.Selenium.DevTools.V137.Performance; +using OpenQA.Selenium.DevTools.V142.Network; +using OpenQA.Selenium.DevTools.V142.Performance; namespace SeleniumDocs.BiDi.CDP @@ -16,7 +16,7 @@ public class NetworkTest : BaseTest [TestInitialize] public void Startup() { - StartDriver("137"); + StartDriver("142"); } [TestMethod] @@ -109,9 +109,9 @@ public async Task PerformanceMetrics() driver.Url = "https://www.selenium.dev/selenium/web/frameset.html"; var session = ((IDevTools)driver).GetDevToolsSession(); - var domains = session.GetVersionSpecificDomains(); + var domains = session.GetVersionSpecificDomains(); - await domains.Performance.Enable(new OpenQA.Selenium.DevTools.V137.Performance.EnableCommandSettings()); + await domains.Performance.Enable(new OpenQA.Selenium.DevTools.V142.Performance.EnableCommandSettings()); var metricsResponse = await session.SendCommand( new GetMetricsCommandSettings() @@ -130,8 +130,8 @@ await session.SendCommand( public async Task SetCookie() { var session = ((IDevTools)driver).GetDevToolsSession(); - var domains = session.GetVersionSpecificDomains(); - await domains.Network.Enable(new OpenQA.Selenium.DevTools.V137.Network.EnableCommandSettings()); + var domains = session.GetVersionSpecificDomains(); + await domains.Network.Enable(new OpenQA.Selenium.DevTools.V142.Network.EnableCommandSettings()); var cookieCommandSettings = new SetCookieCommandSettings { diff --git a/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj b/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj index 688c6fe598b6..08582d0ea2b0 100644 --- a/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj +++ b/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/examples/java/build.gradle b/examples/java/build.gradle index ba3a2a0af90b..38a69565da1a 100644 --- a/examples/java/build.gradle +++ b/examples/java/build.gradle @@ -10,7 +10,7 @@ repositories { } dependencies { - testImplementation 'org.seleniumhq.selenium:selenium-java:4.35.0' + testImplementation 'org.seleniumhq.selenium:selenium-java:4.38.0' testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.13.4' } diff --git a/examples/java/pom.xml b/examples/java/pom.xml index 716651c36fcd..d5f8c184b8e0 100644 --- a/examples/java/pom.xml +++ b/examples/java/pom.xml @@ -13,7 +13,7 @@ 17 17 UTF-8 - 4.35.0 + 4.38.0 diff --git a/examples/java/src/test/java/dev/selenium/bidi/cdp/CdpApiTest.java b/examples/java/src/test/java/dev/selenium/bidi/cdp/CdpApiTest.java index 72f9a7032f3a..9a9ff7d927cd 100644 --- a/examples/java/src/test/java/dev/selenium/bidi/cdp/CdpApiTest.java +++ b/examples/java/src/test/java/dev/selenium/bidi/cdp/CdpApiTest.java @@ -16,9 +16,9 @@ import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.HasDevTools; -import org.openqa.selenium.devtools.v137.browser.Browser; -import org.openqa.selenium.devtools.v137.network.Network; -import org.openqa.selenium.devtools.v137.network.model.Headers; +import org.openqa.selenium.devtools.v142.browser.Browser; +import org.openqa.selenium.devtools.v142.network.Network; +import org.openqa.selenium.devtools.v142.network.model.Headers; import org.openqa.selenium.support.ui.WebDriverWait; public class CdpApiTest extends BaseTest { @@ -27,7 +27,7 @@ public class CdpApiTest extends BaseTest { @BeforeEach public void createSession() { ChromeOptions options = getDefaultChromeOptions(); - options.setBrowserVersion("139"); + options.setBrowserVersion("142"); driver = new ChromeDriver(options); wait = new WebDriverWait(driver, Duration.ofSeconds(10)); } @@ -36,7 +36,7 @@ public void createSession() { public void basicAuth() { devTools = ((HasDevTools) driver).getDevTools(); devTools.createSession(); - devTools.send(Network.enable(Optional.of(100000), Optional.of(100000), Optional.of(100000))); + devTools.send(Network.enable(Optional.of(100000), Optional.of(100000), Optional.of(100000), Optional.of(false), Optional.empty())); String encodedAuth = Base64.getEncoder().encodeToString("admin:admin".getBytes()); Map headers = ImmutableMap.of("Authorization", "Basic " + encodedAuth); diff --git a/examples/java/src/test/java/dev/selenium/bidi/cdp/NetworkTest.java b/examples/java/src/test/java/dev/selenium/bidi/cdp/NetworkTest.java index 68e0cdcc15b6..4805c3063eea 100644 --- a/examples/java/src/test/java/dev/selenium/bidi/cdp/NetworkTest.java +++ b/examples/java/src/test/java/dev/selenium/bidi/cdp/NetworkTest.java @@ -21,10 +21,10 @@ import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.HasDevTools; import org.openqa.selenium.devtools.NetworkInterceptor; -import org.openqa.selenium.devtools.v137.browser.Browser; -import org.openqa.selenium.devtools.v137.network.Network; -import org.openqa.selenium.devtools.v137.performance.Performance; -import org.openqa.selenium.devtools.v137.performance.model.Metric; +import org.openqa.selenium.devtools.v142.browser.Browser; +import org.openqa.selenium.devtools.v142.network.Network; +import org.openqa.selenium.devtools.v142.performance.Performance; +import org.openqa.selenium.devtools.v142.performance.model.Metric; import org.openqa.selenium.remote.http.*; import org.openqa.selenium.support.ui.WebDriverWait; diff --git a/examples/javascript/package.json b/examples/javascript/package.json index c35252cec788..7607dc3f945c 100644 --- a/examples/javascript/package.json +++ b/examples/javascript/package.json @@ -8,7 +8,7 @@ "license": "Apache-2.0", "dependencies": { "assert": "2.1.0", - "selenium-webdriver": "4.36.0" + "selenium-webdriver": "4.38.0" }, "devDependencies": { "mocha": "11.7.4" diff --git a/examples/kotlin/pom.xml b/examples/kotlin/pom.xml index 6a581f45258c..8ecdbd8a4980 100644 --- a/examples/kotlin/pom.xml +++ b/examples/kotlin/pom.xml @@ -19,7 +19,7 @@ 3.5.3 11 - 4.35.0 + 4.38.0 ${java.version} ${java.version} diff --git a/examples/python/requirements.txt b/examples/python/requirements.txt index a73ed85c8f66..f17042570c0a 100644 --- a/examples/python/requirements.txt +++ b/examples/python/requirements.txt @@ -1,9 +1,9 @@ -selenium==4.35.0 -pytest==8.4.1 -trio==0.30.0 +selenium==4.38.0 +pytest==8.4.2 +trio==0.31.0 pytest-trio==0.8.0 -pytest-rerunfailures==15.1 +pytest-rerunfailures==16.1 flake8==7.3.0 requests==2.32.5 -tox==4.28.4 +tox==4.32.0 pytest-xdist==3.8.0 diff --git a/examples/python/tests/bidi/cdp/test_network.py b/examples/python/tests/bidi/cdp/test_network.py index 7cddde13be21..026e6a07b865 100644 --- a/examples/python/tests/bidi/cdp/test_network.py +++ b/examples/python/tests/bidi/cdp/test_network.py @@ -2,7 +2,7 @@ import pytest from selenium.webdriver.common.by import By -from selenium.webdriver.common.devtools.v137.network import Headers +from selenium.webdriver.common.devtools.v142.network import Headers @pytest.mark.trio diff --git a/examples/python/tests/browsers/test_chrome.py b/examples/python/tests/browsers/test_chrome.py index 05ed61e44d3d..d813e8aca815 100644 --- a/examples/python/tests/browsers/test_chrome.py +++ b/examples/python/tests/browsers/test_chrome.py @@ -189,6 +189,7 @@ def test_get_browser_logs(): assert any("I am console error" in log['message'] for log in logs), "No matching log message found." driver.quit() + def get_default_chrome_options(): options = webdriver.ChromeOptions() options.add_argument("--no-sandbox") diff --git a/examples/python/tests/browsers/test_edge.py b/examples/python/tests/browsers/test_edge.py index 457742ca4163..f4114b84087a 100644 --- a/examples/python/tests/browsers/test_edge.py +++ b/examples/python/tests/browsers/test_edge.py @@ -7,6 +7,7 @@ def test_basic_options(): options = get_default_edge_options() + driver = webdriver.Edge(options=options) driver.quit() @@ -73,7 +74,7 @@ def test_log_to_file(log_path): driver = webdriver.Edge(service=service) with open(log_path, 'r') as fp: - assert "Starting Microsoft Edge WebDriver" in fp.readline() + assert "Starting" in fp.readline() driver.quit() @@ -84,7 +85,7 @@ def test_log_to_stdout(capfd): driver = webdriver.Edge(service=service) out, err = capfd.readouterr() - assert "Starting Microsoft Edge WebDriver" in out + assert "Starting" in out driver.quit() @@ -189,6 +190,7 @@ def test_get_browser_logs(): assert any("I am console error" in log['message'] for log in logs), "No matching log message found." driver.quit() + def get_default_edge_options(): options = webdriver.EdgeOptions() options.add_argument("--no-sandbox") diff --git a/examples/python/tests/conftest.py b/examples/python/tests/conftest.py index b394cfc6be81..402b271ccc08 100644 --- a/examples/python/tests/conftest.py +++ b/examples/python/tests/conftest.py @@ -30,6 +30,7 @@ def driver(request): options.enable_bidi = True driver = webdriver.Chrome(options=options) elif driver_type == "firefox": + os.environ["MOZ_ENABLE_WAYLAND"] = "0" driver = webdriver.Firefox() else: driver = webdriver.Chrome() diff --git a/examples/python/tox.ini b/examples/python/tox.ini index 49c6f636bb75..49f01f030d6f 100644 --- a/examples/python/tox.ini +++ b/examples/python/tox.ini @@ -2,7 +2,7 @@ # virtualenvs. This configuration file will run the test suite on all # supported python versions. To use it, run "tox" from this directory. # -# For a specific environment, run: "tox -e " (i.e.: "tox -e py313") +# For a specific environment, run: "tox -e " (i.e.: "tox -e py314") # # This tox configuration will skip any Python interpreters that can't be found. # To manage multiple Python interpreters for covering all versions, you can use @@ -11,11 +11,11 @@ [tox] env_list = - py39 py310 py311 py312 py313 + py314 skip_missing_interpreters = True [testenv] @@ -25,6 +25,4 @@ deps = -r requirements.txt commands = # "-vv" means extra verbose - # "-r fEsxXp" means show extra test summary info as specified by: - # (f)ailed, (E)rror, (s)kipped, (x)failed, (X)passed, (p)assed - pytest -vv -r fEsxXp {posargs:.} + pytest -vv -n auto {posargs:.} diff --git a/examples/ruby/Gemfile b/examples/ruby/Gemfile index 7bc7e7bf0d5b..0c14907e08c9 100644 --- a/examples/ruby/Gemfile +++ b/examples/ruby/Gemfile @@ -7,5 +7,5 @@ gem 'rake', '~> 13.0' gem 'rspec', '~> 3.0' gem 'rubocop', '~> 1.35' gem 'rubocop-rspec', '~> 3.0' -gem 'selenium-devtools', '= 0.139.0' -gem 'selenium-webdriver', '= 4.35.0' +gem 'selenium-devtools', '= 0.142.0' +gem 'selenium-webdriver', '= 4.38.0' diff --git a/examples/ruby/Gemfile.lock b/examples/ruby/Gemfile.lock index 237489957a7c..6a30f9dfc322 100644 --- a/examples/ruby/Gemfile.lock +++ b/examples/ruby/Gemfile.lock @@ -17,7 +17,7 @@ GEM rainbow (3.1.1) rake (13.3.0) regexp_parser (2.11.2) - rexml (3.4.1) + rexml (3.4.4) rspec (3.13.1) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) @@ -49,10 +49,10 @@ GEM lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) ruby-progressbar (1.13.0) - rubyzip (2.4.1) - selenium-devtools (0.139.0) + rubyzip (3.2.1) + selenium-devtools (0.142.0) selenium-webdriver (~> 4.2) - selenium-webdriver (4.35.0) + selenium-webdriver (4.38.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -77,8 +77,8 @@ DEPENDENCIES rspec (~> 3.0) rubocop (~> 1.35) rubocop-rspec (~> 3.0) - selenium-devtools (= 0.139.0) - selenium-webdriver (= 4.35.0) + selenium-devtools (= 0.142.0) + selenium-webdriver (= 4.38.0) BUNDLED WITH 2.5.6 diff --git a/examples/ruby/spec/browsers/edge_spec.rb b/examples/ruby/spec/browsers/edge_spec.rb index 5820fab3e799..7508856f22b2 100644 --- a/examples/ruby/spec/browsers/edge_spec.rb +++ b/examples/ruby/spec/browsers/edge_spec.rb @@ -67,7 +67,7 @@ service.log = file_name @driver = Selenium::WebDriver.for :edge, service: service - expect(File.readlines(file_name).first).to include('Starting Microsoft Edge WebDriver') + expect(File.readlines(file_name).first).to include('Starting') end it 'logs to console' do @@ -77,7 +77,7 @@ expect { @driver = Selenium::WebDriver.for :edge, service: service - }.to output(/Starting Microsoft Edge WebDriver/).to_stdout_from_any_process + }.to output(/Starting/).to_stdout_from_any_process end it 'sets log level' do diff --git a/examples/ruby/spec/drivers/remote_webdriver_spec.rb b/examples/ruby/spec/drivers/remote_webdriver_spec.rb index d2d9c43e73d7..322f493425af 100644 --- a/examples/ruby/spec/drivers/remote_webdriver_spec.rb +++ b/examples/ruby/spec/drivers/remote_webdriver_spec.rb @@ -7,7 +7,7 @@ let(:target_directory) { File.join(Dir.tmpdir, SecureRandom.uuid) } let(:wait) { Selenium::WebDriver::Wait.new(timeout: 2) } let(:server) do - Selenium::Server.new(File.expand_path(File.join('..', '..', '..', 'selenium-server-4.35.0.jar'), __dir__), + Selenium::Server.new(File.expand_path(File.join('..', '..', '..', 'selenium-server-4.38.0.jar'), __dir__), background: true, args: %w[--selenium-manager true --enable-managed-downloads true]) end