0

Je suis en train d'écrire un test Espresso pour mon application, et j'essaie d'automatiser en cliquant sur le déclencheur après l'ouverture d'une caméra dans mon application. J'utilise Espresso et UIAutomator dans l'émulateur Android. J'ai réussi à vider cette interface utilisateur dans UIAutomatorViewer. UIAutomatorViewerCliquez sur Camera Shutter avec UIAutomator

Je ne peux pas comprendre pourquoi je ne peux pas cliquer sur le bouton de l'obturateur à l'aide UIAutomator en utilisant ce code:

public void clickCameraShutterButton() throws UiObjectNotFoundException 
{ 
    UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()); 
    UiSelector shutterSelector = new UiSelector().resourceId("com.android.camera:id/shutter_button"); 
    UiObject shutterButton = device.findObject(shutterSelector); 
    shutterButton.click(); 
} 

La caméra se trouve juste là, et le bouton de l'obturateur est jamais cliqué. C'est la trace de la pile que je reçois dans le moniteur Android Studio:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.app.Activity.findViewById(int)' on a null object reference 

Tout conseil serait apprécié.

Répondre

1

Cela a fonctionné pour moi

@Before 
public void setUp() { 
    // Initialize UiDevice instance 
    final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); 
    mDevice = UiDevice.getInstance(instrumentation); 
} 

... 


/** 
* @@Test comment [email protected]@ 
* 
* @throws Exception 
*/ 
@Test 
public void culebraGeneratedTest_CameraShutter() throws Exception { 
    mDevice.findObject(By.res("com.android.camera2:id/shutter_button").desc("Shutter").clazz("android.widget.ImageView").text(Pattern.compile("")).pkg("com.android.camera2")).clickAndWait(Until.newWindow(), DEFAULT_TIMEOUT); 
} 

Ce test trouve l'obturateur et clique dessus.

Si vous êtes intéressé ce test a été généré automatiquement en utilisant CulebraTester.

0

Vous pouvez essayer ce code:

device.findObject(new UiSelector().resourceId("com.android.camera:id/shutter_button")).click(); 

ou

device.findObject(new UiSelector().description("Shutter button")).click(); 

ou

device.executeShellCommand("input keyevent 27"); 

cette valeur moyenne de 27 KEYCODE_CAMERA est

ou

device.click(x,y);