Selenium本机android应用程序的DesiredCapabilities已过时

时间:2018-08-07 13:35:07

标签: c# android selenium appium-android

我正在尝试建立一个硒框架来测试android模拟器上的应用程序。但是,我不断收到DesiredCapabilities已过时的警告。除了与浏览器的关系之外,我找不到任何相关信息。但是在我的框架中,我正在尝试测试本机应用程序。

代码:

    [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);
    }

3 个答案:

答案 0 :(得分:0)

.NET绑定正在朝着一个模式,在这种模式下,不应将DesiredCapabilites 直接使用。为此,ChromeOptions类 有一个ToCapabilities()方法。

编辑:

这应该可以正常工作:

#!/bin/sh

#Get the highest tag number
VERSION=`git describe --abbrev=0 --tags`
VERSION=${VERSION:-'0.0.0'}

#Get number parts
MAJOR="${VERSION%%.*}"; VERSION="${VERSION#*.}"
MINOR="${VERSION%%.*}"; VERSION="${VERSION#*.}"
PATCH="${VERSION%%.*}"; VERSION="${VERSION#*.}"

#Increase version
PATCH=$((PATCH+1))

#Get current hash and see if it already has a tag
GIT_COMMIT=`git rev-parse HEAD`
NEEDS_TAG=`git describe --contains $GIT_COMMIT`

#Create new tag
NEW_TAG="$MAJOR.$MINOR.$PATCH"
echo "Updating to $NEW_TAG"

#Only tag if no tag already (would be better if the git describe command above could have a silent option)
if [ -z "$NEEDS_TAG" ]; then
    echo "Tagged with $NEW_TAG (Ignoring fatal:cannot describe - this means commit is untagged) "
    git tag $NEW_TAG
else
    echo "Already a tag on this commit"
fi

答案 1 :(得分:0)

到目前为止,Appium的开发人员(提供AnroidDriver类)尚未实现绕过DesiredCapabilities类使用的解决方案。 (我找不到任何相关问题或请求请求)

selenium issue

中的引用

答案 2 :(得分:0)

由于DesiredCapabilites在最新的硒驱动程序中已作废,我们可以为任何浏览器使用特定的浏览器选项,对于android native应用程序,我们可以使用AppiumOptions。下面的代码对于Android本机应用程序应该可以正常工作。

        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");