实例介绍
Appium-dotnet客户端是Selenium C# WebDriver的一个重要扩展,它不仅包含了所有常规驱动程序的功能,还添加了许多Appium特有的方法,以支持更广泛的自动化测试需求。
此驱动程序与Appium服务器的兼容性得到了显著增强,尤其是在v5.x版本中,用户需要升级到Appium 2.x版本或添加base-path参数来确保兼容性。需要注意的是,Appium 1.x版本已不再维护,向Appium 2.x迁移是推荐的做法。
在使用过程中,一些方法已被弃用,例如MultiAction和TouchAction,建议使用W3C WebDriver动作或mobile:扩展代替。同时,LaunchApp、CloseApp和Reset等方法也已被弃用,推荐阅读每个弃用消息以获取替代方法。
针对W3C动作和应用管理,提供了详细的迁移指南和示例代码,帮助用户更好地理解和应用这些新特性。例如,使用OpenQA.Selenium.Interactions进行动作序列的构建和执行。
需要注意的是,由于WinAppDriver被微软放弃更新,运行Appium dotnet-client 5.x时可能会遇到兼容性问题。为了在Windows应用程序上使用Appium,需要使用appium-windows-driver作为代理。
关于NuGet包和依赖项的说明,虽然不会发布签名版本的程序集,但用户可以下载代码并自行构建签名版本。使用Appium-dotnet客户端时,需要添加命名空间`using OpenQA.Selenium.Appium;`,并使用AppiumDriver类或其子类来构造驱动程序。
总之,Appium-dotnet客户端为Selenium C# WebDriver提供了强大的扩展,使自动化测试更加灵活和高效。
【实例截图】
【核心代码】
文件清单
└── dotnet-client-e2fd45ee3edd1d9626afae503e2964343f70393b
├── azure-pipelines.yml
├── CHANGELOG.MD
├── CONTRIBUTING.md
├── LICENSE
├── NOTICE
├── PULL_REQUEST_TEMPLATE.md
├── README.md
├── RELEASE_NOTES.md
├── src
│ ├── Appium.Net
│ │ ├── Appium
│ │ │ ├── Android
│ │ │ │ ├── AndroidCommandExecutionHelper.cs
│ │ │ │ ├── AndroidDriver.cs
│ │ │ │ ├── AndroidStartScreenRecordingOptions.cs
│ │ │ │ ├── AndroidStopScreenRecordingOptions.cs
│ │ │ │ ├── Enums
│ │ │ │ │ ├── AndroidKeyCode.cs
│ │ │ │ │ ├── AndroidKeyMetastate.cs
│ │ │ │ │ ├── AutomatorSetting.cs
│ │ │ │ │ ├── ConnectionType.cs
│ │ │ │ │ ├── ListDirection.cs
│ │ │ │ │ └── PerformanceDataType.cs
│ │ │ │ ├── Interfaces
│ │ │ │ │ ├── IHasNetworkConnection.cs
│ │ │ │ │ ├── IHasPerformanceData.cs
│ │ │ │ │ ├── IHasSettings.cs
│ │ │ │ │ ├── IPushesFiles.cs
│ │ │ │ │ └── IStartsActivity.cs
│ │ │ │ ├── KeyEvent.cs
│ │ │ │ └── UiAutomator
│ │ │ │ ├── AndroidUiScrollable.cs
│ │ │ │ ├── AndroidUiSelector.cs
│ │ │ │ └── TerminatedStatementBuilder.cs
│ │ │ ├── AppiumCommand.cs
│ │ │ ├── AppiumCommandExecutionHelper.cs
│ │ │ ├── AppiumDriverCommand.cs
│ │ │ ├── AppiumDriver.cs
│ │ │ ├── AppiumElement.cs
│ │ │ ├── AppiumElementFactory.cs
│ │ │ ├── AppiumOptions.cs
│ │ │ ├── CachedElementFactory.cs
│ │ │ ├── Enums
│ │ │ │ ├── AndroidMobileCapabilityType.cs
│ │ │ │ ├── AppState.cs
│ │ │ │ ├── AutomationName.cs
│ │ │ │ ├── ClipboardContentType.cs
│ │ │ │ ├── GsmCallActions.cs
│ │ │ │ ├── GsmSignalStrength.cs
│ │ │ │ ├── GsmVoiceState.cs
│ │ │ │ ├── IOSMobileCapabilityType.cs
│ │ │ │ ├── MobileBrowserType.cs
│ │ │ │ ├── MobileCapabilityType.cs
│ │ │ │ ├── MobilePlatform.cs
│ │ │ │ └── MobileSelector.cs
│ │ │ ├── GuardClauses.cs
│ │ │ ├── ImageComparison
│ │ │ │ ├── ComparisonMode.cs
│ │ │ │ ├── ComparisonOptions.cs
│ │ │ │ ├── ComparisonResult.cs
│ │ │ │ ├── FeaturesMatchingOptions.cs
│ │ │ │ ├── FeaturesMatchingResult.cs
│ │ │ │ ├── OccurenceMatchingOptions.cs
│ │ │ │ ├── OccurenceMatchingResult.cs
│ │ │ │ ├── SimilarityMatchingOptions.cs
│ │ │ │ └── SimilarityMatchingResult.cs
│ │ │ ├── Interactions
│ │ │ │ ├── InteractionInfo.cs
│ │ │ │ └── PointerInputDevice.cs
│ │ │ ├── Interfaces
│ │ │ │ ├── Generic
│ │ │ │ │ └── SearchContext
│ │ │ │ │ ├── IGenericFindsByClassName.cs
│ │ │ │ │ ├── IGenericFindsByCssSelector.cs
│ │ │ │ │ ├── IGenericFindsById.cs
│ │ │ │ │ ├── IGenericFindsByLinkText.cs
│ │ │ │ │ ├── IGenericFindsByName.cs
│ │ │ │ │ ├── IGenericFindsByPartialLinkText.cs
│ │ │ │ │ ├── IGenericFindsByTagName.cs
│ │ │ │ │ ├── IGenericFindsByXPath.cs
│ │ │ │ │ └── IGenericSearchContext.cs
│ │ │ │ ├── IContextAware.cs
│ │ │ │ ├── IExecuteMethod.cs
│ │ │ │ ├── IFindByAccessibilityId.cs
│ │ │ │ ├── IFindByAndroidDataMatcher.cs
│ │ │ │ ├── IFindByAndroidUIAutomator.cs
│ │ │ │ ├── IFindByAndroidViewMatcher.cs
│ │ │ │ ├── IFindByIosUIAutomation.cs
│ │ │ │ ├── IFindByTizenUIAutomation.cs
│ │ │ │ ├── IFindByWindowsUIAutomation.cs
│ │ │ │ ├── IFindsByFluentSelector.cs
│ │ │ │ ├── IFindsByimage.cs
│ │ │ │ ├── IFindsByIosClassChain.cs
│ │ │ │ ├── IFindsByIosNSPredicate.cs
│ │ │ │ ├── IHasClipboard.cs
│ │ │ │ ├── IHasLocation.cs
│ │ │ │ ├── IHasSessionDetails.cs
│ │ │ │ ├── IHidesKeyboard.cs
│ │ │ │ ├── IHidesKeyboardWithKeyName.cs
│ │ │ │ ├── IInteractsWithApps.cs
│ │ │ │ ├── IInteractsWithFiles.cs
│ │ │ │ ├── IMobileElement.cs
│ │ │ │ ├── IMultiAction.cs
│ │ │ │ ├── INetworkActions.cs
│ │ │ │ ├── IPerformsTouchActions.cs
│ │ │ │ ├── IScreenRecordingOptions.cs
│ │ │ │ ├── ISendsKeyEvents.cs
│ │ │ │ ├── ITouchAction.cs
│ │ │ │ ├── IUiAutomatorStatementBuilder.cs
│ │ │ │ └── IWebElementCached.cs
│ │ │ ├── iOS
│ │ │ │ ├── Enums
│ │ │ │ │ └── HideKeyboardStrategy.cs
│ │ │ │ ├── Interfaces
│ │ │ │ │ ├── IHasSettings.cs
│ │ │ │ │ ├── IPerformsTouchID.cs
│ │ │ │ │ └── IShakesDevice.cs
│ │ │ │ ├── IOSCommandExecutionHelper.cs
│ │ │ │ ├── IOSDriver.cs
│ │ │ │ ├── IOSStartScreenRecordingOptions.cs
│ │ │ │ └── IOSStopScreenRecordingOptions.cs
│ │ │ ├── Location.cs
│ │ │ ├── Mac
│ │ │ │ └── MacDriver.cs
│ │ │ ├── MobileBy.cs
│ │ │ ├── MultiAction
│ │ │ │ ├── MultiAction.cs
│ │ │ │ └── TouchAction.cs
│ │ │ ├── ScreenOrientationExtensions.cs
│ │ │ ├── ScreenRecording
│ │ │ │ ├── BaseScreenRecordingOptions.cs
│ │ │ │ ├── BaseStartScreenRecordingOptions.cs
│ │ │ │ ├── BaseStopScreenRecordingOptions.cs
│ │ │ │ └── ScreenRecordingUploadOptions.cs
│ │ │ ├── Service
│ │ │ │ ├── AppiumClientConfig.cs
│ │ │ │ ├── AppiumCommandExecutor.cs
│ │ │ │ ├── AppiumLocalService.cs
│ │ │ │ ├── AppiumServiceBuilder.cs
│ │ │ │ ├── AppiumServiceConstants.cs
│ │ │ │ ├── DirectConnect.cs
│ │ │ │ ├── Exceptions
│ │ │ │ │ ├── AppiumServerHasNotBeenStartedLocallyException.cs
│ │ │ │ │ ├── InvalidNodeJSInstanceException.cs
│ │ │ │ │ └── InvalidServerInstanceException.cs
│ │ │ │ └── Options
│ │ │ │ ├── AndroidOptionList.cs
│ │ │ │ ├── BaseOptionList.cs
│ │ │ │ ├── GeneralOptionList.cs
│ │ │ │ ├── IOSOptionList.cs
│ │ │ │ └── OptionCollector.cs
│ │ │ ├── Tizen
│ │ │ │ ├── TizenCommandExecutionHelper.cs
│ │ │ │ └── TizenDriver.cs
│ │ │ └── Windows
│ │ │ ├── Enums
│ │ │ │ └── WindowsKeyCodes.cs
│ │ │ └── WindowsDriver.cs
│ │ ├── appium-icon.png
│ │ ├── Appium.Net.csproj
│ │ ├── Appium.Net.licenseheader
│ │ ├── LICENSE.txt
│ │ └── Properties
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ └── Appium.Net.sln
└── test
└── integration
├── Android
│ ├── ActionsChainsTest.cs
│ ├── ActivityTest.cs
│ ├── AndroidUiScrollableTests.cs
│ ├── AndroidUiSelectorTests.cs
│ ├── AppStringsTest.cs
│ ├── ClipboardTest.cs
│ ├── ConnectionTest.cs
│ ├── CurrentPackageTest.cs
│ ├── Device
│ │ ├── AppTests.cs
│ │ ├── AuthenticationTest.cs
│ │ ├── BrowserTests.cs
│ │ ├── KeyboardTests.cs
│ │ ├── KeyPressTest.cs
│ │ ├── NetworkTests.cs
│ │ ├── PerformanceDataTests.cs
│ │ └── SystemTests.cs
│ ├── ElementTest.cs
│ ├── ElementTestEspresso.cs
│ ├── EmulatorDeviceTime.cs
│ ├── FileInteractionTest.cs
│ ├── LockDeviceTest.cs
│ ├── OrientationTest.cs
│ ├── ScreenRecordingTest.cs
│ ├── SearchingTest.cs
│ ├── Session
│ │ ├── GeolocationTests.cs
│ │ └── LogTests.cs
│ ├── SessionTest.cs
│ ├── SettingTest.cs
│ ├── TouchActionTest.cs
│ └── WaitTests.cs
├── Appium.Net.Integration.Tests.csproj
├── apps
│ ├── ApiDemos-debug.apk
│ ├── archives
│ │ ├── ApiDemos-debug.zip
│ │ ├── IntentExample.zip
│ │ ├── TestApp.app.zip
│ │ ├── UICatalog.app.zip
│ │ ├── vodqa.zip
│ │ └── WebViewApp.app.zip
│ └── IntentExample.apk
├── env.json.sample
├── helpers
│ ├── AppiumServers.cs
│ ├── Apps.cs
│ ├── Caps.cs
│ ├── Env.cs
│ ├── Filters.cs
│ ├── Npm.cs
│ ├── NpmNotFoundException.cs
│ ├── NpmUnknownCommandException.cs
│ └── Paths.cs
├── IOS
│ ├── AlertTests.cs
│ ├── AppStringsTest.cs
│ ├── ClipboardTest.cs
│ ├── Device
│ │ └── AppTests.cs
│ ├── ElementTest.cs
│ ├── LockDeviceTest.cs
│ ├── OrientationTest.cs
│ ├── ScreenRecordingTest.cs
│ ├── ScrollingSearchingTest.cs
│ ├── SearchingClassChainTest.cs
│ ├── SearchingTest.cs
│ ├── Session
│ │ └── LogTests.cs
│ ├── SettingTest.cs
│ ├── TouchActionTest.cs
│ └── WebviewTest.cs
├── Mac
│ └── AlertTest.cs
├── Options
│ └── OptionsTest.cs
├── Properties
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── README.md
├── ServerTests
│ ├── AppiumClientConfigTest.cs
│ ├── AppiumLocalServerLaunchingTest.cs
│ ├── DirectConnectTest.cs
│ └── StartingAppLocallyTest.cs
└── Windows
├── ClickElementTest.cs
├── ImagesComparisonTest.cs
├── MultiSelectControlTest.cs
├── PentTest.cs
└── StickyNotesTest.cs
43 directories, 218 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论