Skip to content

Tags: appium/dotnet-client

Tags

v8.3.2

Toggle v8.3.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore: Bump Selenium.WebDriver from 4.45.0 to 4.46.0 (#1085)

* chore: Bump Selenium.WebDriver from 4.44.0 to 4.46.0

---
updated-dependencies:
- dependency-name: Selenium.WebDriver
  dependency-version: 4.46.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* docs: update compatibility matrix for Selenium 4.46.0

* docs: replace Unreleased with 8.3.2 in compatibility matrix

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v8.3.1

Toggle v8.3.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
ci(deps): Bump actions/cache from 5 to 6 (#1069)

Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v5...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v8.3.0

Toggle v8.3.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: support selenium 4.44.0, refactor tests, and modernize code (#1053

)

* Update dependencies, refactor tests, and modernize code

- Bump and fix Selenium 4.44.0 breaking changes
- Bump package versions in main and test projects
- Update copyright year to 2026
- Remove ICommandExecutor from AppiumLocalService
- Modernize code with target-typed new and object initializers
- Simplify exception handling and assertions in tests
- Mark WindowsDriver.HideKeyboard as new
- Refactor BiDiTests, PerformanceDataTests, WaitTests, and ClipboardTest for NUnit 4.6 compatibility
- Make StickyNotesTest abstract and refactor session setup

* Refactor: modernize codebase and update dependencies

- Use collection expressions and null-coalescing assignments
- Refactor test assertions for NUnit compatibility
- Comment out failing GetPropertyTest in ElementTest.cs
- Update README.md with latest supported versions
- Add missing IDisposable in AppiumLocalService
- General code cleanup and style improvements

* bumped test project to .net 10

* fixed missing capability in test

* revert back .net 8, will fix later

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* cleanup

* revert test project package versions

* fixes from review

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

v8.2.0

Toggle v8.2.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
ci(deps): Bump actions/upload-artifact from 6 to 7 (#1015)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v8.1.0

Toggle v8.1.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: Stop local appium process with SIGTERM (#1006)

* Initial plan

* Implement graceful shutdown for AppiumLocalService on Windows

Co-authored-by: Dor-bl <59066376+Dor-bl@users.noreply.github.com>

* Address code review feedback: improve error handling and comments

Co-authored-by: Dor-bl <59066376+Dor-bl@users.noreply.github.com>

* Further improve exception handling with separate catch blocks

Co-authored-by: Dor-bl <59066376+Dor-bl@users.noreply.github.com>

* Improve process shutdown handling in AppiumLocalService

Updated `TryGracefulShutdownOnWindows` to enhance null checks and exception handling for disposed processes. Simplified CTRL+C event handling and removed unnecessary comments for clarity.

Added a new test class in `AppiumLocalServiceTests` to validate the behavior of `TryGracefulShutdownOnWindows`. The tests cover various scenarios, including null processes, exited processes, non-Windows platforms, and real Appium processes, using reflection to access private members.

* Refactor process handling in AppiumLocalServiceTests

Removed the `using` statement for the current process in
`AppiumLocalServiceTests.cs`, allowing it to be referenced
without disposal. This simplifies the code while maintaining
the functionality to test graceful shutdown behavior on
Windows.

* Refactor console attachment handling in AppiumLocalService

Added a boolean variable to track console attachment status. Simplified error handling by removing redundant try-catch blocks and ensuring proper cleanup in the finally block.

* Refactor AppiumLocalServiceTests namespace and setup

Changed the namespace of `AppiumLocalServiceTests` to
`Appium.Net.Integration.Tests.ServerTests`. Updated the
`GlobalSetup` method to dynamically determine the Appium
path using an environment variable or by executing
`npm root -g`, removing hardcoded paths. If the Appium
path is invalid, the test is skipped with an appropriate
message.

* Refactor process shutdown logic for Windows

Removed P/Invoke declarations and related methods for graceful shutdown. Simplified `TryGracefulShutdownOnWindows` to check process exit status without console attachment. Adjusted exception handling to fallback to process termination, streamlining the shutdown process.

* Add method existence checks in shutdown tests

This commit introduces assertions to verify the presence of the `TryGracefulShutdownOnWindows` method in multiple test cases. This change helps identify potential issues with method signatures or names. Additionally, unnecessary comments and code related to simulating process states have been removed or modified to enhance the clarity and focus of the tests.

* Use null-conditional operator for appiumServer.Dispose

Modified the GlobalTeardown method to use the null-conditional operator (`?.`) when calling `Dispose` on `appiumServer`. This change prevents potential `NullReferenceException` by ensuring that `Dispose` is only called if `appiumServer` is not null.

* Enhance service shutdown logic for OS compatibility

Added System.Runtime.InteropServices for platform checks.
Updated shutdown logic to handle Windows-specific graceful
shutdown and included exception handling for robustness.

* Add shutdown timeout handling in AppiumLocalService

Introduced a new method `GetShutdownTimeoutWithBuffer` to calculate the shutdown timeout for the Appium service, incorporating a default timeout of 5000 ms and an additional buffer of 1000 ms. This method checks for the `--shutdown-timeout` argument to allow customization. The timeout value is utilized in the `DestroyProcess` method for graceful shutdown on Windows.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

v8.0.1

Toggle v8.0.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore: add bidi test with newser selenium webdriver dependency (#955)

* test: add bidi test

* use newer webdriver deps

* simplify the test code

* Update Appium.Net.csproj

* add redundant spaces to reduce diff

* Use newer selenium webdriver

* Use Task.Delay

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Use ?

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update BiDiTests.cs

* add try/catch to ignore exceptions here

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

v8.0.0

Toggle v8.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
BREAKING CHANGE: use extension commands for deprecated endpoints (#939)

* feat: use mobile:background

* pdate clipboard stuff

* simplify a bit

* turn

* query app state

* add /se

* update for device time

* update for system bar

* device density command

* gps

* replace android smulator stuff

* activities

* pressKeys

* long press

* keyboards

* touch id etc

* change rest

* use Array.Empty<object>

* use proper args

* adjust arguments

* remove ToggleAirplaneMode

* remove ToggleData

* remove ToggleWifi

* remove connection type stuff

* remove EndTestCoverage

* update start activity

* Update test/integration/Android/Device/App/AppTests.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* replace windows stuff

* update readme and rmeove redundant spaces

* fix review

* tweak review

* fix typo

* cleanup a bit more

* tweak the readme

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* update readme

* modify the readme format

* add xml doc

* extract to private methods for press key code stuff

* fix table format

* add xml doc

* update readme

* fix typo

v7.2.0

Toggle v7.2.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: Add support for Relax SSL validation (#922)

* Add RelaxSslValidation property and IsModified method

Added a new property `RelaxSslValidation` to the `AppiumClientConfig` class to allow users to specify whether SSL validation should be relaxed. Introduced a new method `IsModified` that checks if the current configuration has been modified from the default configuration, specifically comparing the `DirectConnect` and `RelaxSslValidation` properties.

* Add AppiumHttpCommandExecutor class with custom HttpClientHandler

Introduce AppiumHttpCommandExecutor in OpenQA.Selenium.Appium.Service.
This class inherits from HttpCommandExecutor and includes two constructors
for initializing with a Uri and TimeSpan, with an optional AppiumClientConfig.
Override CreateHttpClientHandler to customize HttpClientHandler with a
callback for server certificate validation. Add ModifyHttpClientHandler
method to return the customized handler. Include necessary using directives.

* Switch to AppiumHttpCommandExecutor for better integration

Replaced instances of HttpCommandExecutor with AppiumHttpCommandExecutor
in AppiumCommandExecutor.cs. Updated CreateRealExecutor and
GetNewExecutorWithDirectConnect methods to return AppiumHttpCommandExecutor.
Modified ModifyNewSessionHttpRequestHeader to cast commandExecutor to
AppiumHttpCommandExecutor and added a call to ModifyHttpClientHandler with
ClientConfig. These changes enhance the command execution process by
leveraging Appium-specific functionalities.

* Refactor AppiumCommandExecutor and AppiumHttpCommandExecutor

Updated CreateRealExecutor to accept AppiumClientConfig and pass it to AppiumHttpCommandExecutor. Modified constructors of AppiumCommandExecutor to include clientConfig. Reformatted Execute and HandleCommandException methods for consistency. Cleaned up ModifyNewSessionHttpRequestHeader method to remove commented-out code and ensure IdempotencyHeader is added. Updated AppiumHttpCommandExecutor constructor to optionally accept clientConfig and initialize _clientConfig. Adjusted CreateHttpClientHandler to set ServerCertificateCustomValidationCallback based on RelaxSslValidation property. Removed obsolete ModifyHttpClientHandler method.

* Add test for RelaxSslValidation in AppiumClientConfig

A new test method `SetAndGetRelaxSSLValidation` was added to the
`AppiumClientConfigTest` class within the
`Appium.Net.Integration.Tests.ServerTests` namespace. This test
verifies the `RelaxSslValidation` property of the `AppiumClientConfig`
class. It asserts that the default value of `RelaxSslValidation` is
`False`, then sets it to `True` and asserts the updated value.

* Remove `IsModified` method from `AppiumClientConfig`

* Add Apache License header to AppiumHttpCommandExecutor.cs

* Passing clientConfig to ensure consistent behavior in GetNewExecutorWithDirectConnect

* Add RelaxSslValidationTest for Appium SSL validation

* Refactor AppiumHttpCommandExecutor initialization

Refactored the `AppiumHttpCommandExecutor` class to simplify initialization:
- Moved constructor parameters directly into the class definition.
- Initialized `_clientConfig` field at the point of declaration.
- Removed redundant constructor definition and initialization of `_clientConfig` within the constructor body.

* Make ClientConfig readonly in AppiumCommandExecutor

* Add conditional compilation for .NET version-specific tests

* Directly setting callback when enabling the relax SSL Validation.

* Consolidate cleanup logic in RelaxSslValidationTest

* Simplify exception handling in RelaxSslValidationTest

v7.1.0

Toggle v7.1.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
build(deps): bump Selenium.WebDriver in /src/Appium.Net (#896)

Bumps [Selenium.WebDriver](https://github.com/SeleniumHQ/selenium) from 4.27.0 to 4.28.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](SeleniumHQ/selenium@selenium-4.27.0...selenium-4.28.0)

---
updated-dependencies:
- dependency-name: Selenium.WebDriver
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v7.0.0

Toggle v7.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
build(deps): bump Selenium.WebDriver in /src/Appium.Net (#871)

Bumps [Selenium.WebDriver](https://github.com/SeleniumHQ/selenium) from 4.26.1 to 4.27.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](https://github.com/SeleniumHQ/selenium/commits/selenium-4.27.0)

---
updated-dependencies:
- dependency-name: Selenium.WebDriver
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>