C# 如果在Selenium 3+;中所需的功能是不确定的;,用什么代替移动web测试?

C# 如果在Selenium 3+;中所需的功能是不确定的;,用什么代替移动web测试?,c#,selenium-webdriver,appium,saucelabs,C#,Selenium Webdriver,Appium,Saucelabs,我正在尝试学习如何在SauceLabs中编写自动化web测试,Visual Studio告诉我DesiredCapabilities在Selenium 3中不受欢迎。我知道如何使用ChromeOptions进行桌面测试,但是移动web测试呢?这项工作: DesiredCapabilities caps = new DesiredCapabilities(); caps.SetCapability("deviceName", "iPhone 8 Simulator"); caps.SetCapab

我正在尝试学习如何在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/mobile Chrome)。我应该改用Appium驱动程序吗

中将有一个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();
}
public void SimpleTest()
{
var appiumOptions=新的appiumOptions();
appiumOptions.AddAdditionalCapability(MobileCapabilityType.PlatformName,“Android”);
应用选项。添加附加功能(MobileCapabilityType.PlatformVersion,“7.1.1”);
appiumOptions.AddAdditionalCapability(MobileCapabilityType.FullReset,true);
appiumOptions.AddAddAdditionalCapability(MobileCapabilityType.NewCommandTimeout,60);
appiumOptions.AddAdditionalCapability(“testobject_api_key”,“0D6C044F19D0442BA1E11C3FF087F6A6”);
appiumOptions.AddAdditionalCapability(“用户名”,SauceUser.Name);
appiumOptions.AddAdditionalCapability(“accessKey”,SauceUser.accessKey);
//TODO首先必须将应用程序上载到测试对象,以便获取应用程序密钥
var rdcUrl=”https://us1.appium.testobject.com/wd/hub";
var driver=newandroiddriver(新Uri(rdcUrl),appiumOptions);
driver.Navigate().gotour(“https://www.ultimateqa.com");
控制台。写线(“”);
driver.Quit();
}

我认为您应该尝试使用appium驱动程序。只需下载appium c#客户端并启动。您可以使用以下链接开始


因此,目前还没有办法使用稳定的Appium nuget以非弃用的方式实现这一点?据我所知,这是不可能的。我想你有几个选择。首先,使用DesiredCaps,然后切换。第二,使用Nuget软件包的Beta版,这样您将获得最新版本。第三,您可以创建一个包装器,并将其称为创建移动浏览器的DriverFactory。在任何地方使用它。然后,当需要升级时,您只需在一个地方更新实现,但使用情况将保持不变。这可能是将来验证代码的最佳选择