Skip to content

Commit

Permalink
Merge branch 'trunk' into jspecify-net
Browse files Browse the repository at this point in the history
  • Loading branch information
diemol authored Jan 15, 2025
2 parents 023a737 + a3a007b commit 49e61eb
Show file tree
Hide file tree
Showing 102 changed files with 1,843 additions and 1,505 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/ci-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ jobs:
steps:
- name: Checkout source tree
uses: actions/checkout@v4
- name: Set up Python 3.8
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand All @@ -40,10 +40,10 @@ jobs:
steps:
- name: Checkout source tree
uses: actions/checkout@v4
- name: Set up Python 3.8
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand All @@ -62,10 +62,10 @@ jobs:
steps:
- name: Checkout source tree
uses: actions/checkout@v4
- name: Set up Python 3.8
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci-rbe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
with:
name: Check format script run
caching: false
ruby-version: jruby-9.4.8.0
ruby-version: jruby-9.4.9.0
run: ./scripts/github-actions/check-format.sh

test:
Expand All @@ -25,5 +25,5 @@ jobs:
with:
name: All RBE tests
caching: false
ruby-version: jruby-9.4.8.0
ruby-version: jruby-9.4.9.0
run: ./scripts/github-actions/ci-build.sh
4 changes: 2 additions & 2 deletions .github/workflows/ci-renovate-rbe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
with:
name: Check format script run
caching: false
ruby-version: jruby-9.4.8.0
ruby-version: jruby-9.4.9.0
run: ./scripts/github-actions/check-format.sh

test:
Expand All @@ -58,7 +58,7 @@ jobs:
with:
name: All RBE tests
caching: false
ruby-version: jruby-9.4.8.0
ruby-version: jruby-9.4.9.0
run: ./scripts/github-actions/ci-build.sh

ci-gh:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
os: macos
- ruby-version: 3.3.5
os: ubuntu
- ruby-version: jruby-9.4.8.0
- ruby-version: jruby-9.4.9.0
os: ubuntu
- ruby-version: truffleruby-24.1.1
os: ubuntu
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ jobs:
with:
name: Nightly JavaScript Release
cache-key: javascript-nightly
node-version: '18.x'
node-version: '22.x'
run: |
sed -i 's|https://registry.npmjs.org/|https://npm.pkg.github.com|g' javascript/node/selenium-webdriver/package.json
sed -i 's|"name": "selenium-webdriver"|"name": "@seleniumhq/selenium-webdriver"|g' javascript/node/selenium-webdriver/package.json
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/update-documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,10 @@ jobs:
run: |
git config --local user.email "[email protected]"
git config --local user.name "Selenium CI Bot"
- name: Set up Python 3.8
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand Down
43 changes: 22 additions & 21 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -111,11 +111,11 @@ use_repo(oci, "chrome_standalone", "firefox_standalone", "java_image_base")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
is_default = True,
python_version = "3.8",
python_version = "3.9",
)
python.toolchain(python_version = "3.9")
python.toolchain(python_version = "3.10")
python.toolchain(python_version = "3.11")
python.toolchain(python_version = "3.12")
use_repo(python, "pythons_hub")

pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
Expand All @@ -127,10 +127,10 @@ pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
requirements_lock = "//py:requirements_lock.txt",
)
for version in [
"3.8",
"3.9",
"3.10",
"3.11",
"3.12",
]
]

Expand Down Expand Up @@ -216,7 +216,7 @@ maven.install(
"org.junit.platform:junit-platform-reporting",
"org.junit.platform:junit-platform-commons",
"org.junit.platform:junit-platform-engine",
"org.mockito:mockito-core:5.14.2",
"org.mockito:mockito-core:5.15.2",
"org.redisson:redisson:3.41.0",
"org.slf4j:slf4j-api:2.0.16",
"org.slf4j:slf4j-jdk14:2.0.16",
Expand Down Expand Up @@ -263,10 +263,11 @@ ruby.bundle_fetch(
"//:rb/selenium-webdriver.gemspec",
],
gem_checksums = {
"activesupport-7.2.1.2": "6c3f6ad50c4e52ce39d67aeda38f99e1372eca8b295987d072c19460ebce4cb1",
"activesupport-7.2.2.1": "842bcbf8a92977f80fb4750661a237cf5dd4fdd442066b3c35e88afb488647f5",
"addressable-2.8.7": "462986537cf3735ab5f3c0f557f14155d778f4b43ea4f485a9deb9c8f7c58232",
"ast-2.4.2": "1e280232e6a33754cde542bc5ef85520b74db2aac73ec14acef453784447cc12",
"base64-0.2.0": "0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507",
"benchmark-0.4.0": "0f12f8c495545e3710c3e4f0480f63f06b4c842cc94cec7f33a956f5180e874a",
"bigdecimal-3.1.8": "a89467ed5a44f8ae01824af49cbc575871fa078332e8f77ea425725c1ffe27be",
"bigdecimal-3.1.8-java": "b9e94c14623fff8575f17a10320852219bbba92ecff4977571503d942687326e",
"concurrent-ruby-1.3.4": "d4aa926339b0a86b5b5054a0a8c580163e6f5dcbdfd0f4bb916b1a2570731c32",
Expand All @@ -280,24 +281,24 @@ ruby.bundle_fetch(
"ffi-1.17.0": "51630e43425078311c056ca75f961bb3bda1641ab36e44ad4c455e0b0e4a231c",
"ffi-1.17.0-java": "f65f022616970fcde83fe176393eb873a7b959ef2703f94931cf0af6ab55ec7a",
"ffi-1.17.0-x86_64-darwin": "fdcd48c69db3303ef95aec5c64d6275fcf9878a02c0bec0afddc506ceca0f56b",
"fileutils-1.7.2": "36a0fb324218263e52b486ad7408e9a295378fe8edc9fd343709e523c0980631",
"fileutils-1.7.3": "57271e854b694a87755d76f836f5c57b2c9538ebbaf4b2154bb66addf15eb5da",
"git-1.19.1": "b0a422d9f6517353c48a330d6114de4db9e0c82dbe7202964a1d9f1fbc827d70",
"hashdiff-1.1.1": "c7966316726e0ceefe9f5c6aef107ebc3ccfef8b6db55fe3934f046b2cf0936a",
"hashdiff-1.1.2": "2c30eeded6ed3dce8401d2b5b99e6963fe5f14ed85e60dd9e33c545a44b71a77",
"i18n-1.14.6": "dc229a74f5d181f09942dd60ab5d6e667f7392c4ee826f35096db36d1fe3614c",
"io-console-0.7.2": "f0dccff252f877a4f60d04a4dc6b442b185ebffb4b320ab69212a92b48a7a221",
"io-console-0.7.2-java": "73aa382f8832b116613ceaf57b8ff5bf73dfedcaf39f0aa5420e10f63a4543ed",
"irb-1.14.1": "5975003b58d36efaf492380baa982ceedf5aed36967a4d5b40996bc5c66e80f8",
"jar-dependencies-0.4.1": "b2df2f1ecbff15334ce20ea7fdd5b8d8161faab67761ff72c7647d728e40d387",
"json-2.7.4": "9ea6258b4add3abd25df965515be8b19be417f58b8c42619c7f2d3e86c158ece",
"json-2.7.4-java": "5d5d1593d8727a66f2e4161710dde06ba7043c9b3fa9eea0889fdc0450a107cd",
"json-2.8.2": "dd4fa6c9c81daecf72b86ea36e56ed8955fdbb4d4dc379c93d313a59344486cf",
"json-2.8.2-java": "7a7321efd8fad215a1afe92b5f16546203f193781da2d5c01587600cc00aa302",
"language_server-protocol-3.17.0.3": "3d5c58c02f44a20d972957a9febe386d7e7468ab3900ce6bd2b563dd910c6b3f",
"listen-3.9.0": "db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67",
"logger-1.6.1": "3ad9587ed3940bf7897ea64a673971415523f4f7d6b22c5e3af5219705669653",
"minitest-5.25.1": "3db6795a80634def1cf86fda79d2d83b59b25ce5e186fa675f73c565589d2ad8",
"minitest-5.25.2": "59b379d63e0058159127b545c4725d3106624c9be2b3e030ddaee825d59e83eb",
"parallel-1.26.3": "d86babb7a2b814be9f4b81587bf0b6ce2da7d45969fab24d8ae4bf2bb4d4c7ef",
"parser-3.3.5.0": "f30ebb71b7830c2e7cdc4b2b0e0ec2234900e3fca3fe2fba47f78be759181ab3",
"psych-5.1.2": "337322f58fc2bf24827d2b9bd5ab595f6a72971867d151bb39980060ea40a368",
"psych-5.1.2-java": "1dd68dc609eddbc884e6892e11da942e16f7256bd30ebde9d35449d43043a6fe",
"parser-3.3.6.0": "25d4e67cc4f0f7cab9a2ae1f38e2005b6904d2ea13c34734511d0faad038bc3b",
"psych-5.2.0": "6603fe756bcaf14daa25bc17625f36c90931dcf70452ac1e8da19760dc310573",
"psych-5.2.0-java": "da3a7995e652365faa210d7658a291141c9a15bf05a4d9a48a13856b04f36960",
"public_suffix-6.0.1": "61d44e1cab5cbbbe5b31068481cf16976dd0dc1b6b07bd95617ef8c5e3e00c6f",
"racc-1.8.1": "4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f",
"racc-1.8.1-java": "54f2e6d1e1b91c154013277d986f52a90e5ececbe91465d29172e49342732b98",
Expand All @@ -308,35 +309,35 @@ ruby.bundle_fetch(
"rb-inotify-0.11.1": "a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e",
"rbs-3.6.1": "ed7273d018556844583d1785ac54194e67eec594d68e317d57fa90ad035532c0",
"rchardet-1.8.0": "693acd5253d5ade81a51940697955f6dd4bb2f0d245bda76a8e23deec70a52c7",
"rdoc-6.7.0": "b17d5f0f57b0853d7b880d4360a32c7caf8dbb81f8503a36426df809e617f379",
"rdoc-6.8.1": "0128002d1bfc4892bdd780940841e4ca41275f63781fd832d11bc8ba4461462c",
"regexp_parser-2.9.2": "5a27e767ad634f8a4b544520d5cd28a0db7aa1198a5d7c9d7e11d7b3d9066446",
"reline-0.5.10": "1660c969a792ebd034e6ceee8ca628f3b6698dcdb34f7a282a5edda37b958166",
"reline-0.5.11": "868d5f4dbfd9caafa70182f7f6fa258b70baee4e565d7cd9e70b4d5b11a7cb65",
"rexml-3.3.9": "d71875b85299f341edf47d44df0212e7658cbdf35aeb69cefdb63f57af3137c9",
"rspec-3.13.0": "d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993",
"rspec-core-3.13.2": "94fbda6e4738e478f1c7532b7cc241272fcdc8b9eac03a97338b1122e4573300",
"rspec-expectations-3.13.3": "0e6b5af59b900147698ea0ff80456c4f2e69cac4394fbd392fbd1ca561f66c58",
"rspec-mocks-3.13.2": "2327335def0e1665325a9b617e3af9ae20272741d80ac550336309a7c59abdef",
"rspec-support-3.13.1": "48877d4f15b772b7538f3693c22225f2eda490ba65a0515c4e7cf6f2f17de70f",
"rubocop-1.67.0": "8ccca7226e76d0a9974af960ea446d1fb38adf0c491214294e2fed75a85c378c",
"rubocop-ast-1.32.3": "40201e861c73a3c2d59428c7627828ef81fb2f8a306bc4a1c1801452afe3fe0f",
"rubocop-1.68.0": "07df508504d81e97174e8d21030f25d52c1be7ee8615939db43f3b377ea6c12b",
"rubocop-ast-1.36.1": "15d89a8953178bc32561d481a3620496e70933a228be1e3b6997b01b8d587b79",
"rubocop-capybara-2.21.0": "5d264efdd8b6c7081a3d4889decf1451a1cfaaec204d81534e236bc825b280ab",
"rubocop-factory_bot-2.26.1": "8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa",
"rubocop-performance-1.22.1": "9ed9737af1ee90655654b483e0eac4e64702139e85d33335bf744b57a309a679",
"rubocop-performance-1.23.0": "34ae78cb1bc5f1a0b34a34a1f9f6eec2cb8b8b9cafa2ce37982021e86fa49171",
"rubocop-rake-0.6.0": "56b6f22189af4b33d4f4e490a555c09f1281b02f4d48c3a61f6e8fe5f401d8db",
"rubocop-rspec-2.31.0": "2bae19388d78e1ceace44cd95fd34f3209f4ef20cac1b168d0a1325cbba3d672",
"rubocop-rspec_rails-2.29.1": "4ae95abbe9ca5a9b6d8be14e50d230fb5b6ba033b05d4c0981b5b76fc44988e4",
"ruby-progressbar-1.13.0": "80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33",
"rubyzip-2.3.2": "3f57e3935dc2255c414484fbf8d673b4909d8a6a57007ed754dde39342d2373f",
"securerandom-0.3.1": "98f0450c0ea46d2f9a4b6db4f391dbd83dc08049592eada155739f40e0341bde",
"securerandom-0.3.2": "e8b2ffa651dfbbb26eb4bfb8ddcfff94221a93e3f118f39e0f7f94c14fea9dc0",
"steep-1.5.3": "7c6302a4d5932d0a46176ebc79766e52b853c223a85525aa2f8911e345123b85",
"stringio-3.1.1": "53456e14175c594e0e8eb2206a1be33f3974d4fe21c131e628908b05c8c2ae1e",
"stringio-3.1.2": "204f1828f85cdb39d57cac4abc6dc44b04505a223f131587f2e20ae3729ba131",
"strscan-3.1.0": "01b8a81d214fbf7b5308c6fb51b5972bbfc4a6aa1f166fd3618ba97e0fcd5555",
"strscan-3.1.0-java": "8645aa76e017e21764c6df572d2d79fcc1672284014f5bdbd806278cdbcd11b0",
"terminal-table-3.0.2": "f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91",
"tzinfo-2.0.6": "8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b",
"unicode-display_width-2.6.0": "12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a",
"webmock-3.24.0": "be01357f6fc773606337ca79f3ba332b7d52cbe5c27587671abc0572dbec7122",
"webrick-1.8.2": "431746a349199546ff9dd272cae10849c865f938216e41c402a6489248f12f21",
"webrick-1.9.0": "9ee50c57006489960b2a07544f68de6f23dfbee30e7b424167b5c14b72ace964",
"websocket-1.2.11": "b7e7a74e2410b5e85c25858b26b3322f29161e300935f70a0e0d3c35e0462737",
"yard-0.9.37": "a6e910399e78e613f80ba9add9ba7c394b1a935f083cccbef82903a3d2a26992",
},
Expand Down
4 changes: 4 additions & 0 deletions dotnet/src/support/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ csharp_library(
"UI/*.cs",
]) + [":assembly-info"],
out = "WebDriver.Support",
langversion = "12.0",
nullable = "annotations",
target_frameworks = [
"netstandard2.0",
],
Expand Down Expand Up @@ -74,6 +76,8 @@ csharp_library(
]) + [":assembly-info"],
out = "WebDriver.Support.StrongNamed",
keyfile = "//dotnet:WebDriver.snk",
langversion = "12.0",
nullable = "annotations",
target_frameworks = [
"netstandard2.0",
],
Expand Down
35 changes: 12 additions & 23 deletions dotnet/src/support/Events/FindElementEventArgs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,12 @@ namespace OpenQA.Selenium.Support.Events
/// </summary>
public class FindElementEventArgs : EventArgs
{
private IWebDriver driver;
private IWebElement element;
private By method;

/// <summary>
/// Initializes a new instance of the <see cref="FindElementEventArgs"/> class.
/// </summary>
/// <param name="driver">The WebDriver instance used in finding elements.</param>
/// <param name="method">The <see cref="By"/> object containing the method used to find elements</param>
/// <param name="method">The <see cref="By"/> object containing the method used to find elements.</param>
/// <exception cref="ArgumentNullException">If <paramref name="driver"/> or <paramref name="method"/> are <see langword="null"/>.</exception>
public FindElementEventArgs(IWebDriver driver, By method)
: this(driver, null, method)
{
Expand All @@ -44,37 +41,29 @@ public FindElementEventArgs(IWebDriver driver, By method)
/// Initializes a new instance of the <see cref="FindElementEventArgs"/> class.
/// </summary>
/// <param name="driver">The WebDriver instance used in finding elements.</param>
/// <param name="element">The parent element used as the context for the search.</param>
/// <param name="element">The parent element used as the context for the search, or <see langword="null"/> if none exists.</param>
/// <param name="method">The <see cref="By"/> object containing the method used to find elements.</param>
public FindElementEventArgs(IWebDriver driver, IWebElement element, By method)
/// <exception cref="ArgumentNullException">If <paramref name="driver"/> or <paramref name="method"/> are <see langword="null"/>.</exception>
public FindElementEventArgs(IWebDriver driver, IWebElement? element, By method)
{
this.driver = driver;
this.element = element;
this.method = method;
this.Driver = driver ?? throw new ArgumentNullException(nameof(driver));
this.Element = element;
this.FindMethod = method ?? throw new ArgumentNullException(nameof(method));
}

/// <summary>
/// Gets the WebDriver instance used in finding elements.
/// </summary>
public IWebDriver Driver
{
get { return this.driver; }
}
public IWebDriver Driver { get; }

/// <summary>
/// Gets the parent element used as the context for the search.
/// Gets the parent element used as the context for the search, or <see langword="null"/> if no element is associated.
/// </summary>
public IWebElement Element
{
get { return this.element; }
}
public IWebElement? Element { get; }

/// <summary>
/// Gets the <see cref="By"/> object containing the method used to find elements.
/// </summary>
public By FindMethod
{
get { return this.method; }
}
public By FindMethod { get; }
}
}
18 changes: 5 additions & 13 deletions dotnet/src/support/Events/GetShadowRootEventArgs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,34 +26,26 @@ namespace OpenQA.Selenium.Support.Events
/// </summary>
public class GetShadowRootEventArgs : EventArgs
{
private IWebDriver driver;
private ISearchContext searchContext;

/// <summary>
/// Initializes a new instance of the <see cref="GetShadowRootEventArgs"/> class.
/// </summary>
/// <param name="driver">The WebDriver instance used in the current context.</param>
/// <param name="searchContext">The parent searc context used as the context for getting shadow root.</param>
/// <exception cref="ArgumentNullException">If <paramref name="driver"/> or <paramref name="searchContext"/> are <see langword="null"/>.</exception>
public GetShadowRootEventArgs(IWebDriver driver, ISearchContext searchContext)
{
this.driver = driver;
this.searchContext = searchContext;
this.Driver = driver ?? throw new ArgumentNullException(nameof(driver));
this.SearchContext = searchContext ?? throw new ArgumentNullException(nameof(searchContext));
}

/// <summary>
/// Gets the WebDriver instance used in the current context.
/// </summary>
public IWebDriver Driver
{
get { return this.driver; }
}
public IWebDriver Driver { get; }

/// <summary>
/// Gets the parent search context used as the context for getting shadow root.
/// </summary>
public ISearchContext SearchContext
{
get { return this.searchContext; }
}
public ISearchContext SearchContext { get; }
}
}
20 changes: 6 additions & 14 deletions dotnet/src/support/Events/WebDriverExceptionEventArgs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,34 +26,26 @@ namespace OpenQA.Selenium.Support.Events
/// </summary>
public class WebDriverExceptionEventArgs : EventArgs
{
private Exception thrownException;
private IWebDriver driver;

/// <summary>
/// Initializes a new instance of the <see cref="WebDriverExceptionEventArgs"/> class.
/// </summary>
/// <param name="driver">The WebDriver instance throwing the exception.</param>
/// <param name="thrownException">The exception thrown by the driver.</param>
/// <exception cref="ArgumentNullException">If <paramref name="driver"/> or <paramref name="thrownException"/> are <see langword="null"/>.</exception>
public WebDriverExceptionEventArgs(IWebDriver driver, Exception thrownException)
{
this.driver = driver;
this.thrownException = thrownException;
this.Driver = driver ?? throw new ArgumentNullException(nameof(driver));
this.ThrownException = thrownException ?? throw new ArgumentNullException(nameof(thrownException));
}

/// <summary>
/// Gets the exception thrown by the driver.
/// </summary>
public Exception ThrownException
{
get { return this.thrownException; }
}
public Exception ThrownException { get; }

/// <summary>
/// Gets the WebDriver instance .
/// Gets the WebDriver instance.
/// </summary>
public IWebDriver Driver
{
get { return this.driver; }
}
public IWebDriver Driver { get; }
}
}
Loading

0 comments on commit 49e61eb

Please sign in to comment.