0

私は自分のアプリのエスプレッソテストを作成しています。私のアプリでカメラを開いた後、シャッターボタンをクリックするのを自動化しようとしています。UIAutomatorを使用してカメラシャッターをクリックしてください

私はAndroidエミュレータでEspressoとUIAutomatorを使用しています。このUIをUIAutomatorViewerにダンプすることができました。 UIAutomatorViewer

私はこのコードを使用してUIAutomatorを使用して、シャッターボタンをクリックすることができませんなぜ私は理解することはできません。

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

をカメラがちょうどそこに座っていると、シャッターボタンがクリックされることはありません。これは、Androidスタジオのモニタに表示されるスタックトレースです。

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

アドバイスをいただければ幸いです。

答えて

1

これは私のため

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

を働いたこのテストでは、シャッターを見つけ、それをクリックします。

このテストは、CulebraTesterを使用して自動的に生成されました。

0

あなたはこのコードを試すことができます。これはKEYCODE_CAMERA値が27

または

であることを意味

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

または

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

または

device.executeShellCommand("input keyevent 27"); 

device.click(x,y); 
関連する問題