我有一个android应用程序,它打开一个webview进行登录。我需要为用户名和密码插入文本,但appium无法在webview上找到元素。Appium inspector也无法检查屏幕上的元素。这是android webview的问题吗?
Xpath正在显示:/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.webkit.WebView
在尝试寻找WebView中的元素时,您需要首先将上下文切换到WebView中。请参阅官方留档自动化混合应用。
以下是如何从上述文档中输入WebView的步骤:
以下是在Appium测试中与web视图对话所需的步骤:
>
导航到应用程序中web视图处于活动状态的部分
检索当前可用的上下文。它返回我们可以访问的上下文列表,如NATIVE_APP或WEBVIEW_1
使用要访问的上下文的id设置上下文。这将使您的Appium会话进入一种模式,其中所有命令都被解释为用于自动执行web视图,而不是应用程序的本机部分。例如,如果运行getElementByTagName,它将在web视图的DOM上操作,而不是返回本机元素。当然,某些WebDriver方法仅在一个或另一个上下文中有意义,因此在错误的上下文中,您将收到错误消息。
若要停止在Web视图上下文中进行自动化,并返回到自动化应用程序的本机部分,只需使用本机上下文id(通常为NATIVE_APP)再次设置上下文,以离开Web上下文并再次访问本机命令。
Android布局由ViewGroup
s和View
s组成,而WebView
是一个视图
,具有自己的内容,不能有孩子般的ViewGroup
s。呈现站点上的文本字段不是AndroidsEditText
s,它们只是由Chromium引擎呈现和处理。e、 g.它们有自己的默认样式,可以通过CSS进行样式设置,但对于舒尔来说,当您为它们“全局”设置某些样式时,它们的样式将不会与您的EditText
s相同
WebView
有点像VideoView
-是的,你可以播放一段视频,其中只包含屏幕中间的文本,但这不会使VideoView
的行为像TextView
。例如,您不能更改文本颜色或选择部分文本进行复制。整个内容由另一种机制呈现(这两种情况下都是巨大而复杂的,在后台工作,可能运行新线程,甚至可能运行进程),就像Chromium呈现网站一样。
您仍然可以尝试使用JS访问web内容文本字段,使用smth,如下所示
webView.loadUrl("javascript:document.getElementByName('id_of_field').value = 'inserted text';");
首先不要忘记启用JS
webView.getSettings().setJavaScriptEnabled(true);
另外,在开发者选项中启用“显示布局边界”,并检查应用程序的外观(或任何其他,甚至系统本身)以及web内容的外观(在WebView
或任何浏览器应用程序中)
> 启动appium服务器后,该应用程序安装在ios模拟器中。 当我尝试使用appium inspector进行检查时,appium inspector中的刷新按钮一直在加载,它根本不会加载应用程序的主页。
问题内容: 我的Android应用程序中有一个webview,但是当有人在站点中导航时,它会在新窗口中打开,我希望它停留在webview中。是否可以轻松地做到这一点?这是我活动中的代码: 问题答案: 您必须创建一个: 然后将其设置为如下所示:
我正在检查一个屏幕上iOS应用程序,但它不提供该屏幕上的任何元素。 Appium inspector未在该屏幕上提供任何对象。请帮忙。我被困在这里了。如果有其他方法检查iOS屏幕,请建议。 我正在mac中使用Appium Desktop v1.9.0 https://i.stack.imgur.com/HZVkf.png
我无法通过Android Studio或手动复制APK在我的联想Phab PLUS(联想PB-1 770M,Android 5.1.1 API 22)上安装我的应用程序。 通过Android Studio:我得到错误失败安装APK[INSTALL_FAILED_DEXOPT]。它提示我,手机上可能有一个现有的应用程序,带有相同的过时的德克斯罐包,并提示我卸载现有的应用程序。然而,当我继续"是",它
在gradle attemp构建项目后有一个日志(使用Pro buf) :app:GeneratedBugProto失败 失败:生成失败,出现异常。 > 错误:任务“:app:generateDebugProto”的执行失败。 协议:标准输出:。stderr:/Users//app/build/extracted protos/main:警告:目录不存在/用户//app/src/debug/pro