DesiredCapabilities for Selenium native android application obsolete

∥☆過路亽.° 提交于 2019-12-12 13:26:45

问题


I am trying to set up a selenium framework to test a application on an android emulator. However I keep getting a warning that DesiredCapabilities is obsolete. I cant find any information on this apart from that relation to browsers. But in my framework I am trying to test a native application.

Code:

    [TestMethod]
    public void Test_Open_Mobile_App()
    {
        DesiredCapabilities cap = new DesiredCapabilities();

        //set the emulator
        cap.SetCapability("platformVersion", "8.1");
        cap.SetCapability("platformName", "Android");
        cap.SetCapability("deviceName", "Device 01 Oreo_1440x2560");
        cap.SetCapability("udid", "emulator-5554");
        cap.SetCapability("deviceType", "phone");
        cap.SetCapability("device", "Android");
        cap.SetCapability("app", "C:/Users/User/Desktop/Mobile Tests/App APK/com.hyperspheric.go4schools.apk");
        cap.SetCapability("appPackage", "appPackage");
        cap.SetCapability("appActivity", "appActivity");


        _driver = new AndroidDriver<AndroidElement>(new Uri("http://127.0.0.1:4723/wd/hub"), cap);
    }

回答1:


The .NET bindings are moving toward a pattern where DesiredCapabilites should not be used directly. To facilitate that, the ChromeOptions class has a ToCapabilities() method.

EDIT:

This should work fine:

ChromeOptions options = new ChromeOptions()
DesiredCaps = options.ToCapabilities() as DesiredCapabilities;
DesiredCaps.SetCapability("platformName","Android");
DesiredCaps.SetCapability("platformVersion", "8.1");
DesiredCaps.SetCapability("deviceName", "Device 01 Oreo_1440x2560");
DesiredCaps.SetCapability("device", "Android");

AppDriver = new AndroidDriver<AppiumWebElement>(new Uri("http://127.0.0.1:4723/wd/hub"), DesiredCaps, TimeSpan.FromSeconds(300));



回答2:


As of now, the developpers of Appium ( who provide the AnroidDriver class ) haven't implemented a solution bypassing the use of the DesiredCapabilities class. ( I couldn't find any related issue or pull request )

As refered in this selenium issue




回答3:


As of DesiredCapabilites is obsoleted in latest selenium driver, we can use specific browser option for any browser and for android native app we can use AppiumOptions. Below code should work fine for android native app.

        AppiumOptions cap = new AppiumOptions();

        //set the emulator
        cap.AddAdditionalCapability("platformVersion", "8.1");
        cap.AddAdditionalCapability("platformName", "Android");
        cap.AddAdditionalCapability("deviceName", "Device 01 Oreo_1440x2560");
        cap.AddAdditionalCapability("udid", "emulator-5554");
        cap.AddAdditionalCapability("deviceType", "phone");
        cap.AddAdditionalCapability("device", "Android");
        cap.AddAdditionalCapability("app", "C:/Users/User/Desktop/Mobile Tests/App APK/com.hyperspheric.go4schools.apk");
        cap.AddAdditionalCapability("appPackage", "appPackage");
        cap.AddAdditionalCapability("appActivity", "appActivity");


来源:https://stackoverflow.com/questions/51728126/desiredcapabilities-for-selenium-native-android-application-obsolete

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!