小编Luc*_*tti的帖子

Android Espresso 测试使用 ACTION_VIEW 从​​ SDK 打开的 WebView

在我们的代码中,我们使用外部 SDK 来登录用户 (Auth0)。此 SDK 使用意图打开 WebView ACTION_VIEW

我试图重写我们已有的一些自动化测试(在此切换之前我们使用本机登录)。WebView 正确打开,但是当我尝试使用androidx.test.espresso:espresso-web代码与其交互时onWebView().forceJavascriptEnabled() ,出现以下错误:

androidx.test.espresso.NoActivityResumedException: No activities in stage RESUMED. Did you forget to launch the activity. (test.getActivity() or similar)?
at dalvik.system.VMStack.getThreadStackTrace(Native Method)
at java.lang.Thread.getStackTrace(Thread.java:1841)
at androidx.test.espresso.base.EspressoExceptionHandler.handleSafely(EspressoExceptionHandler.java:2)
at androidx.test.espresso.base.EspressoExceptionHandler.handleSafely(EspressoExceptionHandler.java:1)
at androidx.test.espresso.base.DefaultFailureHandler$TypedFailureHandler.handle(DefaultFailureHandler.java:4)
at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:5)
at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:8)
at androidx.test.espresso.ViewInteraction.desugaredPerform(ViewInteraction.java:11)
at androidx.test.espresso.ViewInteraction.perform(ViewInteraction.java:8)
at androidx.test.espresso.web.sugar.Web$WebInteraction.forceJavascriptEnabled(Web.java:1)
Run Code Online (Sandbox Code Playgroud)

相反,如果我不使用forceJavascriptEnabled(),并直接尝试使用 访问 WebView onWebView().withElement(),则会收到错误:

androidx.test.espresso.NoMatchingViewException: No views in hierarchy found matching: an instance of android.webkit.WebView and webView.getSettings().getJavaScriptEnabled() is <true>

View Hierarchy:
+>DecorView{id=-1, visibility=VISIBLE, width=1080, height=2400, …
Run Code Online (Sandbox Code Playgroud)

android webview gui-testing android-espresso auth0

7
推荐指数
0
解决办法
182
查看次数

如何在工作区中的两个xcode项目之间共享文件?

我了解了Xcode工作区。我知道如何共享静态库,但是我想在工作区中的两个xcode项目之间共享文件,并且可以一次运行多个目标吗?能否向我提供如何执行此操作的信息。

提前致谢

iphone xcode ios ios-targets

6
推荐指数
2
解决办法
5609
查看次数

如何在android中获取第二个sim的信息

通过使用以下方法,我获得了sim one的信息

 TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
            // Get the SIM country ISO code
            String simCountry = telephonyManager.getSimCountryIso();
            Log.e("Show:", simCountry);
            // Get the operator code of the active SIM (MCC + MNC)
            String simOperatorCode = telephonyManager.getSimOperator();
            Log.e("Show:", simOperatorCode);
            // Get the name of the SIM operator
            String simOperatorName = telephonyManager.getSimOperatorName();
            Log.e("Show:", simOperatorName);
            // Get the SIM’s serial number
            String simSerial = telephonyManager.getSimSerialNumber();
            Log.e("Show:", simSerial);
            // Get the phone number
            String mPhoneNumber = telephonyManager.getLine1Number();
            Log.e("Show:", mPhoneNumber);
Run Code Online (Sandbox Code Playgroud)

如何获取双卡手机的第二个SIM卡的信息?

            // Get the phone …
Run Code Online (Sandbox Code Playgroud)

android dual-sim android-permissions

5
推荐指数
1
解决办法
832
查看次数

Dagger / MissingBinding java.util.Map &lt;java.lang.Class &lt;?如果没有@Provides注释的方法,则无法提供扩展ViewModel&gt;,Provider &lt;ViewModel &gt;&gt;

这就是我要提供的方式ViewModelFactory

@Suppress("UNCHECKED_CAST")
@Singleton
class ViewModelFactory @Inject constructor(
    private val viewModels: MutableMap<Class<out ViewModel>, Provider<ViewModel>>
) : ViewModelProvider.Factory {

    override fun <T : ViewModel?> create(modelClass: Class<T>): T = viewModels[modelClass]?.get() as T
}

@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)
@kotlin.annotation.Retention(AnnotationRetention.RUNTIME)
@MapKey
annotation class ViewModelKey(val value: KClass<out ViewModel>)
Run Code Online (Sandbox Code Playgroud)

这就是我绑定的方式ViewModelFactory

@Suppress("unused")
@Module
abstract class ViewModelModule  {
    @Binds
    internal abstract fun bindViewModelFactory(factory: ViewModelFactory): ViewModelProvider.Factory

    @Binds
    @IntoMap
    @ViewModelKey(MainViewModel::class)
    internal abstract fun mainViewModel(viewModel: MainViewModel): ViewModel
}
Run Code Online (Sandbox Code Playgroud)

在构建期间收到以下错误:

di/Injector.java:9: error: [Dagger/MissingBinding] java.util.Map<java.lang.Class<? extends androidx.lifecycle.ViewModel>,javax.inject.Provider<androidx.lifecycle.ViewModel>> cannot be provided without …
Run Code Online (Sandbox Code Playgroud)

dependencies android kotlin dagger dagger-2

1
推荐指数
2
解决办法
655
查看次数