Tags: appium/dotnet-client
Tags
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>
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>
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>
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>
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>
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>
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
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
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>
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>
PreviousNext