2017-01-10 2 views
3

Я использую appium для автоматизации мобильного приложения, но это вышеописанное исключение возникает после запуска приложения на эмуляторе или мобильном устройстве, когда я пытаюсь выполнить некоторую операцию над приложением, то есть нажав кнопку входа в систему ... Кто-нибудь знает, что такое случилось с ним?>Error Screenshotorg.openqa.selenium.WebDriverException: код кодека или ответа не определен. Не удалось продолжить

Полный код выглядит следующим образом

import static org.junit.Assert.*; 

import java.io.File; 
import java.net.MalformedURLException; 
import java.net.URL; 

import org.junit.Test; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.remote.DesiredCapabilities; 

import io.appium.java_client.android.AndroidDriver; 
import io.appium.java_client.remote.MobileCapabilityType; 
import io.appium.java_client.remote.MobilePlatform; 

public class selendriodCase { 

    @Test 
    public void test() throws MalformedURLException, InterruptedException { 
     File appDir = new File("src"); 

      File app = new File(appDir, "EZMD1.apk"); 



     DesiredCapabilities cap=new DesiredCapabilities(); 
     cap.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID); 
     cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator"); 
     // specify the application package that we copied from appium     
     cap.setCapability("appPackage", "com.mentor.mobile.csp.ezmobiledocs"); 
     // specify the application activity that we copied from appium     
     cap.setCapability("appActivity", "com.mentor.mobile.csp.ezmobiledocs.SplashActivity"); 


     cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "100"); 
     System.out.println("ahmad"); 
     cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); 
     AndroidDriver ds = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap); 
     //AndroidDriver driver=new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),cap); 
     System.out.println("ahmad"); 

     Thread.sleep(10000); 
     ds.findElementById("com.mentor.mobile.csp.ezmobiledocs:id/facebook").click(); 

    } 

} 

Когда операция щелчок выполнить это показывает следующее исключение

org.openqa.selenium.WebDriverException: No command or response codec has been defined. Unable to proceed 
Build info: version: 'unknown', revision: '3169782', time: '2016-09-29 10:24:50 -0700' 
System info: host: 'PKL-AIQBAL-W7', ip: '137.202.157.127', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_91' 
Driver info: driver.version: RemoteWebDriver 
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:153) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:602) 
    at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:180) 
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:369) 
    at org.openqa.selenium.remote.RemoteWebDriver.findElementById(RemoteWebDriver.java:418) 
    at DesiredCap.test(DesiredCap.java:40) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) 

    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 

    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 

    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 

    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 

    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 

    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 

    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 

    at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 

    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) 

    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 

    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 

    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 

    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)enter code here 

    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
+0

Просьба указать более подробную информацию и скопировать код вместо того, чтобы положить изображение! – Emna

+0

ok, я удалил downvote :) хорошая работа – Emna

+0

любой комментарий об ошибке, с которой я столкнулся? –

ответ

2

Попробуйте с последними файлов .jar ниже
http://central.maven.org/maven2/io/appium/java-client/4.0.0/java-client-4.0.0.jar

ds = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); Попробуйте это будет работать.

+0

Уже пробовал, что ... Исключение происходит, когда выполняется операция щелчка ... Я добавил wait также перед нажатием кнопки, а также добавлены последние баночки .. но по-прежнему та же проблема Я также пробовал 2 других apks ... –

+0

Есть два findElementById класса один является defaultgenericmobile драйвера и еще один является appium драйвером. Используйте приведенный ниже код. . 'Ds.findElement (By.id ("facebook")) нажмите(); ' –

+0

Все то же исключение –

1

Обновите свою версию java-client (файл jar) до последней версии. Я обновил мою версию с 4.0 до 4.1.2, и это сработало для меня. Here

Смежные вопросы