Appium android混合应用程序测试错误

时间:2017-09-29 04:10:08

标签: android selenium ionic-framework appium hybrid

我使用Ionic 2创建了一个Android混合应用程序。现在我想使用Appium,Selenium和TestNg进行测试。我能够成功测试原生Android应用程序但是当我尝试测试混合应用程序时,它会给我以下错误。我在个人电脑和Android设备上的镀铬版本都是最新的。

以下是代码:

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;

// Llibrary for Appium drivers
import io.appium.java_client.android.AndroidDriver;

// Library to create the path to APK
import java.io.File;

// Library used to verify if URL is malformed
import java.net.MalformedURLException;

// Library used to create URL for the Appium server
import java.net.URL;
import java.util.concurrent.TimeUnit;

// Libraries for configuring Desired Capabilities
import io.appium.java_client.remote.MobileCapabilityType;

import org.openqa.selenium.By;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class StartApplication {

    public AppiumDriver<WebElement> driver;

    @BeforeTest
    public void setUp() throws MalformedURLException{
        DesiredCapabilities cap = new DesiredCapabilities();
        //capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Selendroid");
        cap.setCapability("deviceName","AVY9KA96C0700245");
        cap.setCapability("platformVersion","5.1");
        cap.setCapability("platformName","Android");

        cap.setCapability("appPackage", "com.ionicframework.tbag290562"); //Replace with your app's package
        cap.setCapability("appWaitPackage","com.ionicframework.tbag290562");
        cap.setCapability("appActivity", ".MainActivity"); //Replace with app's Activity
        cap.setCapability("appWaitActivity",".MainActivity");
        driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"),cap);

    }
    @Test(priority = 1)
    public void initiateTest(){
        driver.context("WEBVIEW_com.ionicframework.tbag290562");

        driver.findElementByName("q").sendKeys("test test test");

        driver.findElementByName("btng").click();
    }


}

错误

Sep 28, 2017 5:07:06 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS

io.appium.java_client.NoSuchContextException: An unknown server-side error occurred while processing the command. Original error: unknown error: Chrome version must be >= 55.0.2883.0
  (Driver info: chromedriver=2.28.455520 (cc17746adff54984afff480136733114c6b3704b),platform=Windows NT 10.0.10240 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
System info: host: 'RAMITHA-LAP', ip: '192.168.80.167', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_121'
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities [{appPackage=com.ionicframework.tbag290562, deviceScreenSize=720x1280, networkConnectionEnabled=true, warnings={}, appWaitPackage=com.ionicframework.tbag290562, appWaitActivity=.MainActivity, databaseEnabled=false, deviceName=AVY9KA96C0700245, platform=LINUX, deviceUDID=AVY9KA96C0700245, appActivity=.MainActivity, desired={appPackage=com.ionicframework.tbag290562, appActivity=.MainActivity, platformVersion=5.1, appWaitPackage=com.ionicframework.tbag290562, appWaitActivity=.MainActivity, platformName=Android, deviceName=AVY9KA96C0700245}, platformVersion=5.1, webStorageEnabled=false, locationContextEnabled=false, takesScreenshot=true, javascriptEnabled=true, deviceModel=HUAWEI TIT-AL00, deviceManufacturer=HUAWEI, platformName=LINUX}]
Session ID: 6e7233e3-08af-49ef-ba03-88cff6e731a3

    at io.appium.java_client.AppiumDriver.context(AppiumDriver.java:216)
    at StartApplication.initiateTest(StartApplication.java:53)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:661)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
    at org.testng.TestRunner.privateRun(TestRunner.java:744)
    at org.testng.TestRunner.run(TestRunner.java:602)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:380)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
    at org.testng.SuiteRunner.run(SuiteRunner.java:289)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1226)
    at org.testng.TestNG.runSuites(TestNG.java:1144)
    at org.testng.TestNG.run(TestNG.java:1115)
    at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
    at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: unknown error: Chrome version must be >= 55.0.2883.0
  (Driver info: chromedriver=2.28.455520 (cc17746adff54984afff480136733114c6b3704b),platform=Windows NT 10.0.10240 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
System info: host: 'RAMITHA-LAP', ip: '192.168.80.167', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_121'
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities [{appPackage=com.ionicframework.tbag290562, deviceScreenSize=720x1280, networkConnectionEnabled=true, warnings={}, appWaitPackage=com.ionicframework.tbag290562, appWaitActivity=.MainActivity, databaseEnabled=false, deviceName=AVY9KA96C0700245, platform=LINUX, deviceUDID=AVY9KA96C0700245, appActivity=.MainActivity, desired={appPackage=com.ionicframework.tbag290562, appActivity=.MainActivity, platformVersion=5.1, appWaitPackage=com.ionicframework.tbag290562, appWaitActivity=.MainActivity, platformName=Android, deviceName=AVY9KA96C0700245}, platformVersion=5.1, webStorageEnabled=false, locationContextEnabled=false, takesScreenshot=true, javascriptEnabled=true, deviceModel=HUAWEI TIT-AL00, deviceManufacturer=HUAWEI, platformName=LINUX}]
Session ID: 6e7233e3-08af-49ef-ba03-88cff6e731a3
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:215)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:167)
    at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
    at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:82)
    at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:45)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
    at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:89)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:646)
    at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
    at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
    at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
    at io.appium.java_client.AppiumDriver.context(AppiumDriver.java:213)
    ... 25 more


===============================================
Default Suite
Total tests run: 2, Failures: 1, Skips: 0
===============================================


Process finished with exit code 0

0 个答案:

没有答案