我有一个Android Espresso代码尝试点击一个按钮,但它出现安全错误而失败。
这是Espresso命令:
angular.module('resultsApp', ['ngCookies'])
.config(['$qProvider', function ($qProvider) {
$qProvider.errorOnUnhandledRejections(false);
}])
.controller('resultsController', function($scope) {
var code = localStorage.getItem('code');
$scope.data = "";
var dataRef = firebase.database().ref("0/"+code);
dataRef.on('value', function(snapshot){
console.log(snapshot.val());
$scope.data = snapshot.val();
});
console.log($scope.data)
});
这是我收到的错误:
Espresso.onData(Matchers.allOf(Matchers.is(Matchers.instanceOf(Preference.class)), withKey(PreferenceKey.pref_custom_server_base_url.toString()), withSummaryText(Configurations.DEFAULT_SERVER_URL))).check(matches(isCompletelyDisplayed()));
知道为什么会这样吗? 谢谢! 代码在Emulators和Cloud设备上运行,但具有相同的错误。
答案 0 :(得分:1)
我在这个stackoverflow问题的答案中找到了解决该问题的方法: java.lang.SecurityException: Permission Denial: getIntentSender() when using UiAutomation in a test
在指定数据库的位置时,使用getTargetContext()
代替getContext()
,即
File dbFolder = InstrumentationRegistry.getInstrumentation().getTargetContext().getExternalCacheDir();
代替
File dbFolder = InstrumentationRegistry.getInstrumentation().getContext().getExternalCacheDir();