1

我正在使用 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 代码中收到的事件的最佳方法是什么。

4

0 回答 0