我使用Selenium和Selendroid来测试我的混合应用程序。 我的应用程序包含本机部分和WebView。在WebView中,我执行ajax调用,监听异步事件(使用PostMessage)。
我的问题是:我想将我的Selendroid测试(我使用Java)连接到WebView回调。 意思是我想在我的Selendroid测试中了解我在WebView中获得的事件。 例如,我希望我的测试等到WebView中收到事件(在JavaScript代码中)。
在我的原生应用程序中,我使用addJavascriptInterface来连接我的本机部分和WebView,因此我的本机应用程序了解这些事件。 如何将这些事件传递给测试代码?
我的第一次尝试是在我的原生部分中添加EditText,当在webview中收到任何事件时,通过JavaScriptInterface通知本机部分更新此EditText。然后我试着等到文本出现在元素中 (使用wait.until(ExpectedConditoins.textToBePresentInElement(...))) 但问题是WebView被打开并隐藏了原生的EditText视图,因此我无法实际监听EditText中的更改以及我的测试获取错误。
我的第二次尝试是创建一个日志文件,并将本机中的每个日志写入此文件。然后在测试代码中连接到该文件并等待显示新行。 问题是我不知道我是否可以,以及如何做到这一点。
我的问题是,在测试代码中了解WebView中JavaScript代码中收到的事件的最佳方法是什么。