c# - 如果 DesiredCapabilities 在 Selenium 3+ 中已经过时,那么在移动 Web 测试中使用什么来代替?
问题描述
我正在尝试学习如何在 SauceLabs 中编写自动化 Web 测试,而 Visual Studio 告诉我 DesiredCapabilities 在 Selenium 3 中已弃用。我想出了如何ChromeOptions
用于桌面测试,但是移动 Web 测试呢?这有效:
DesiredCapabilities caps = new DesiredCapabilities();
caps.SetCapability("deviceName", "iPhone 8 Simulator");
caps.SetCapability("deviceOrientation", "portrait");
caps.SetCapability("platformVersion", "12.0");
caps.SetCapability("platformName", "iOS");
caps.SetCapability("browserName", "Safari");
caps.SetCapability("username", SauceUsername);
caps.SetCapability("accessKey", SauceAccessKey);
caps.SetCapability("name", TestContext.TestName);
_driver = new RemoteWebDriver(new Uri("http://ondemand.saucelabs.com:80/wd/hub"),
caps, TimeSpan.FromSeconds(600));
但我不想使用已弃用的类。我过去曾大量使用过 Selenium,但这是我第一次进行移动 Web 测试(没有应用程序,只有 Safari/移动 Chrome)。我应该改用 Appium 驱动程序吗?
解决方案
在 Appium v4 的未来版本中将有一个 AppiumOptions()来代替它。你现在可以把它拉下来试一试。
它看起来像这样:
public void SimpleTest()
{
var appiumOptions = new AppiumOptions();
appiumOptions.AddAdditionalCapability(MobileCapabilityType.PlatformName, "Android");
appiumOptions.AddAdditionalCapability(MobileCapabilityType.PlatformVersion, "7.1.1");
appiumOptions.AddAdditionalCapability(MobileCapabilityType.FullReset, true);
appiumOptions.AddAdditionalCapability(MobileCapabilityType.NewCommandTimeout, 60);
appiumOptions.AddAdditionalCapability("testobject_api_key", "0D6C044F19D0442BA1E11C3FF087F6A6");
appiumOptions.AddAdditionalCapability("username", SauceUser.Name);
appiumOptions.AddAdditionalCapability("accessKey", SauceUser.AccessKey);
//TODO first you must upload an app to Test Object so that you get your app key
var rdcUrl = "https://us1.appium.testobject.com/wd/hub";
var driver = new AndroidDriver<IWebElement>(new Uri(rdcUrl), appiumOptions);
driver.Navigate().GoToUrl("https://www.ultimateqa.com");
Console.WriteLine("");
driver.Quit();
}
推荐阅读
- powershell - 如何根据过滤器选择特定的子串长度
- c# - 无法在任务之间做出决定
, IActionResult 和 ActionResult - asp.net - 没有 Kerberos 委派的同一域中的服务之间的 Windows 身份验证
- javascript - 对象中声明的函数不是函数
- redux - Redux mapStateToProps() 在使用 Next.js 返回后不呈现
- arrays - 如何将 collection'1/system.object 变成 Invoke-WebRequest 可以接受的东西?
- php - 如何让 postgresql 将反斜杠解释为绑定值中的转义字符?
- ios - 当进度视图达到最大值时,进度视图执行任务
- android - androidTest:如何在 res/raw 目录中获取文件的路径?
- java - @EnableScheduling 似乎不适用于 Java 1.7 代码