编写一个测试(.NET)
Appium.NET 客户端是 C# 中的官方 Appium 客户端。 此驱动程序是 Selenium C# 客户端的扩展。它具有常规驱动程序的所有功能,并在此基础上添加了Appium特定的方法。 该驱动程序可在 NuGet Gallery 上以Appium.WebDriver的形式提供。
现在,我们进入该目录并创建一个新的NUnit项目。我们还将添加对 Appium.NET 驱动程序的引用和其他依赖项。
cd dotnet-client
dotnet new nunit --name appiumtest
cd appiumtest
# 这将安装最新的5.x版本
dotnet add package Appium.WebDriver --prerelease
dotnet add package Newtonsoft.Json --version 13.0.3
完成此操作后,您的项目应该有一个占位符文件UnitTest1.cs
。我们将替换代码,以包含OpenQA名称空间、驱动程序的初始化和实际测试。
UnitTest1.cs
using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Android;
using OpenQA.Selenium.Appium.Enums;
namespace appiumtest;
public class Tests
{
private AndroidDriver _driver;
[OneTimeSetUp]
public void SetUp()
{
var serverUri = new Uri(Environment.GetEnvironmentVariable("APPIUM_HOST") ?? "http://127.0.0.1:4723/");
var driverOptions = new AppiumOptions() {
AutomationName = AutomationName.AndroidUIAutomator2,
PlatformName = "Android",
DeviceName = "Android Emulator",
};
driverOptions.AddAdditionalAppiumOption("appPackage", "com.android.settings");
driverOptions.AddAdditionalAppiumOption("appActivity", ".Settings");
// NoReset假设模拟器上预装了com.google.android应用程序
driverOptions.AddAdditionalAppiumOption("noReset", true);
_driver = new AndroidDriver(serverUri, driverOptions, TimeSpan.FromSeconds(180));
_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
}
[OneTimeTearDown]
public void TearDown()
{
_driver.Dispose();
}
[Test]
public void TestBattery()
{
_driver.StartActivity("com.android.settings", ".Settings");
_driver.FindElement(By.XPath("//*[@text='Battery']")).Click();
}
}
注意
本指南不包括对.NET客户端库或这里发生的一切进行完整的概述,因此我们暂时不详细解释代码本身。 除了熟悉dotnet客户端驱动程序文档外, 您可能还想阅读Appium功能文档,以更全面地解释您看到的各种API命令及其用途。
基本上,这段代码正在执行以下操作:
- 定义一组要发送到Appium服务器的“能力”(参数),以便Appium知道您想要自动化什么。其中一些参数可以使用环境变量覆盖。
- 在内置的Android设置应用程序上启动Appium会话。
- 找到“电池”列表项并单击它。
- 结束Appium会话。
就是这样!让我们试试。在运行测试之前,请确保您在另一个终端会话中运行了 Appium 服务器,否则您将收到无法连接到该服务器的错误。然后,您可以执行脚本:
dotnet test
# 示例输出:
# Starting test execution, please wait...
# A total of 1 test files matched the specified pattern.
# Passed! - Failed: 0, Passed: 1, Skipped: 0, Total: 1, Duration: 323 ms - appiumtest.dll (net7.0)
如果一切顺利,您会看到“设置”应用程序打开,并导航到模拟器中的“电池”视图,然后应用程序关闭。
恭喜,您已经开始了您的Appium之旅!请继续阅读,了解下一步要探索的内容。