检查WebView元素时的UiAutomator错误
我最近开始在Android中进行自动化测试,并使用UIAUTOMATOR工具来检查UI元素.令人惊讶的是,我遇到了同一屏幕和相同设备的WebView元素的两个不同响应[Genymotion Motox 4.4.4].附件是相同的屏幕截图.我们都知道,Appium在检查没有将" setWebContentsDebugggingEnabled"的WebView元素进行检查时存在问题.这是uiautomator中的错误吗? 解决方案 我们都知道Appium在检查WebView元素时存在问题 谁不会将" setWebContentsDebuggingEnabled"带到真实.这是吗? uiautomator中的错误? 否,它不是错误.它是的实施.除非setWebContentsDebuggingEnabled设置为true,否则您无法在WebView中进行调试或访问任何元素. 从一个> void setWebContentsDebuggingEnabled(启用布尔
0 2023-12-03
编程技术问答社区
在使用appium自动化应用程序时,如何处理安卓设备中产生的吐司?
我正在尝试使用Appium和WebDriver自动化Android应用程序.当我给出无效的凭据以登录应用程序A吐司时,我想断言此吐司的文字.此外,我无法使用Android UiautomatorViewr捕获此Toast的屏幕截图.如何在Android中处理吐司?任何想法! 解决方案 是的,只有使用uiautomator2,只需通过功能中的参数即可使用以下代码: DesiredCapabilities caps = DesiredCapabilities.android(); caps.setCapability("automationName", "uiautomator2"); caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiautomator2"); WebElement toastView = _ForgetPasswordDriver.findElement(By.xpath("//andr
0 2023-11-30
编程技术问答社区
安卓系统。UiTesting时的运行时错误
我正在尝试运行UI测试,并且每次运行应用程序时,都会在控制台中给出以下错误并关闭正在运行的应用程序.我有uiautomator.jar,android.jar&junit4库导入.我正在使用日食.我在这里缺少什么? [2016-04-04 04:44:00- uitests]测试运行失败:仪器运行 由于'java.lang.runtimeException' 而失败 testClass package android.support.v7.appcompat.test; import com.android.uiautomator.core.UiObject; import com.android.uiautomator.core.UiObjectNotFoundException; import com.android.uiautomator.core.UiSelector; import com.android.uiautomator.testrunner.UiAu
4 2023-11-07
编程技术问答社区
无法在Appium Automation中找到Android应用的Snackbar
我有一个todo Android应用程序,每当保存新的托多时,它会显示一个snackbar.在我的自动化测试中,我无法捕获Snackbar,因此我尝试使用XPATH driver.findElementByXPath("//*[@text='TO-DO saved']").isDisplayed()并尝试了driver.findElementByAndroidUIAutomator("new UiSelector().text(\"TO-DO saved\")").isDisplayed(),但没有获得成功. 有人可以帮助我在Appium中获得Android Snackbar元素吗? 解决方案 我注意到它仅在Snackbar包含动作按钮时才发生,而当它没有时,Appium发现它很快. 我仍然没有找到任何解决方案. 其他解决方案 Snackbar是仅出现在某些情况下并且通常在短时间内出现的元素. 您可以尝试使用 fluentwait 抓住它: Fluent
0 2023-11-02
编程技术问答社区
自动安装 ucbrowser
我正在尝试自动化UC浏览器的安装.我可以触入最终的" Enter UC"按钮(屏幕截图)按钮活动.我需要模拟单击"Enter UC"按钮. 我尝试了多种方法(下面列出)来模拟点击,但什么都没有解决. 1.)使用uiautomator垃圾场 - 我试图获取转储并解析以获取绑定,但是当我使用adb shell uiautomator dump> c1>获取转储时,我无法获得完整的完整UI层次结构(也许是因为它仅提供本地视图的UI - 我不确定如果您有任何指针,请告诉我). 转储: - -
6 2023-11-02
编程技术问答社区
如何在linux中安装和运行appium?
我想进行UI自动化以在真实的Android设备中打开URL.为此,我想在Linux系统上安装和运行Appium,请指导我如何做?还建议我使用Eclipse在Chrome浏览器中打开一个URL ?? 解决方案 在Linux上安装Appium 18.04 如果已安装了node.js,则可以尝试: sudo npm install -g appium --unsafe-perm=true --allow-root 它对我有用. 其他解决方案 我想您需要在Linux中运行Appium的所有信息都在这里: 如何运行测试 ?ruby#运行测试 和一堆示例代码 https://github.com/appium/appium/sample/sample-code ,如果您想在Chrome浏览器中运行测试,则需要Chromedriver,它已经集成在Appium Project中.更多信息在这里: 其他解决方案 在Linux上安装Ap
6 2023-11-02
编程技术问答社区
使用Android UI Automator来测试副显示屏上的内容
我有一个准骨应用程序,用于测试多个显示器的支持.我的设置是通过HDMI(传递视频信号)和USB(提供触摸事件)连接到触摸屏("辅助显示")的自定义Android平板电脑运行Android 8.1.0("主要显示"). 该应用程序包含一个活动,显示" Hello World!"在主显示器上,但还利用DisplayManager和WindowManager添加一个计数器和两个+/-按钮到辅助显示: 正常运行应用程序并与次级显示上的按钮进行交互作用. 现在,我想使用 ui automator ,例如,单击+按钮并验证计数器是否记录正确的值.这似乎是不可能的.有人知道我该怎么做吗? 另外,如果UI Automator不是工作的正确工具,但是有一些其他工具,可以让我为显示内容的应用程序编写端到端的黑盒式测试在次要显示上,我很乐意获得建议. 我已经调查的一些事情 我已经使用了uiautomatorviewer工具来检查我的应用程序的布局层次结构.此工具只能看到主显
4 2023-11-02
编程技术问答社区
UiAutomator getLastTraversedText()
我试图使用Android Uiautomator测试Android WebView.据我了解,文档遍历事件,这些事件应通过getUiDevice().getLastTraversedText(). 可读 但是,当我使用getUiDevice().pressDPadDown()滚动Web视图时,getUiDevice().getLastTraversedText()继续返回null. 我错过了什么? 如果有人接到了这个工作电话,我将非常感谢一个简短的代码样本. 解决方案 坏消息:我花了几个小时试图弄清楚如何使这个工作工作,但是除了响应getUiDevice().getLastTraversedText()的电话之外,我还没有得到任何其他东西. fyi这是我尝试并发现的东西: 在adb shell中运行uiautomator events应丢弃所有可访问性事件.它当然报告了各种事件,但是当我手动滚动WebView的内容时,它几乎是沉默的.如果网络浏览中的内
6 2023-11-02
编程技术问答社区
无法启动 UI Automator 查看器
我无法启动UI Automator查看器任何人可以帮助我?如何启动它?当我双击" uiautomatorViewer"一段时间时,黑色窗口打开,但即使我在Windows路径变量中都设置了变量 android_home%\工具; %android_home%\ platform-tools; 即使我不确定我该如何启动? 解决方案 如果您使用JDK 9或10,请将其降级到JDK8.它应该解决问题. 还确保您正确设置了以下路径的设置. android_home c:\ users \ xxx \ appdata \ local \ android \ android \ sdk java_home c:\ program文件\ java \ jdk1.8.0_181 在系统变量的路径下 c:\ users \ xxx \ appdata \ local \ android \ sdk \ sdk \ tools \ bin c:\ users \ x
38 2023-10-25
编程技术问答社区
为具有动态功能的Android项目创建单元和仪表测试
我有一个项目,我有一个主:应用程序包.除此之外,该应用程序还包含同一软件包内的两个动态功能:a and::b. 这里的问题是我无法运行单元和仪器测试(Espresso,UI Automator),因为有以下错误: “AAPT: error: resource string/app_name (aka com.app.A.test:string/app_name) not found.” 当我运行测试(在这种情况下进行UI测试)时,应用程序会编译和工作,没有任何问题. 我弄清楚了在清单合并中发生错误,因为从完全错误可以看出: /Users/user/company/app/features/A/build/intermediates/tmp/manifest/androidTest/app/debug/manifestMerger7870721738992192959.xml:7:5-9:19: AAPT: error: resource string/app
0 2023-10-18
编程技术问答社区
从命令行构建UiAutomator 2.0
我想通过命令行构建,安装和运行uiautomator项目的测试. 在上一个版本中,我正在做: android create uitest-project -n -p -t ant build 构建 然后 adb push /data/local/tmp 安装并最后 adb shell uiautomator runtest -c 但是,现在我陷入了构建部分. 结果是 -check-env: [checkenv] Android SDK Tools Revision 24.1.2 [checkenv] Installed at C:\Android
8 2023-10-18
编程技术问答社区
从不被信任的UID中调用
当我在Android Studio中运行uiautomator时,有时会出现崩溃. W/ActivityManager: Crash of app com.example.testsample running instrumentation ComponentInfo{com.example.testsample.test/android.support.test.runner.AndroidJUnitRunner} 07-16 19:19:34.191 7834-7850/? W/Binder: Binder call failed. java.lang.SecurityException: Calling from not trusted UID! at android.app.UiAutomationConnection.throwIfCalledByNotTrustedUidLocked(UiAutomationConnection.java:427) a
0 2023-10-17
编程技术问答社区
获取用户界面层次结构时出错 获取用户界面层次结构XML文件时出错:com.android.dmlib.SyncException。远程对象不存在
我正在使用ADB测试我的应用程序,但是当我执行" uiautomator for uiautomator": 时,我会遇到此错误 获得UI层次结构XML时获得UI层次结构错误的错误 文件:com.android.ddmlib.syncexception:不存在远程对象! 我的ADB版本是1.0.36,我的Android版本是6.0.1. 仅在接口中有一个正在运动的动态元素时才会启动此错误. 预先感谢您. 解决方案 最好的方法是杀死ADB服务器并重新启动它. sudo adb杀死服务器 sudo adb start-server 这将有能力. 其他解决方案 当前您的UI需要闲置(如 Accessibility Events sent) for at least 1000ms before the AccessibilityService将能够产生UI层次结构转储. 如果您尝试运行adb shell uiautomator dum
18 2023-10-17
编程技术问答社区
为testAndroid设置与主应用程序不同的minSdkV版本
是否可以将测试设置与应用本身相比,为测试设置不同的minSdkVersion吗?我之所以问,是因为我想使用新的测试支持库和UI Automator进行测试.但是,这仅在API 18+上可用.同时,我仍然想支持较旧版本的Android版本,尽管未经过彻底的测试.为此,我需要添加什么build.gradle文件? 要澄清,我正在使用Android Studio和"新"基于Gradle的项目结构. 解决方案 我从 >来自Google. 在您的test或androidTest文件夹中创建一个新的AndroidManifest.xml文件.
2 2023-10-17
编程技术问答社区
无法通过Android测试连接到Sql服务器
我已经使用在我的PC中,我可以连接到数据库,但是在虚拟Android设备中,我会收到以下错误: java.lang.classnotfoundexception:找不到类 路径上的" net.sourceforge.jtds.jtds.jdbc.driver": /system/framework/android.test.runner.jar:/system/framework/uiautomator.jar ::/data/data/local/tmp/tests.jar 加载驱动程序时: Class.forName("net.sourceforge.jtds.jdbc.Driver"); 如何告诉设备在哪里可以找到驱动程序? 我应该在设备中的某个地方上传jdts=1.3.0.jar吗? 我可以在网络上阅读许多文章.但是就我而言,代码不是在Android应用程序中运行的,而是作为对应用程序的测试运行.可能是问题吗? 许多这样的答案建议将其在外部服务中
2 2023-09-25
编程技术问答社区
我如何使用appium从混合应用的下拉菜单中选择数值?
我对Appium是相对较新的,并且积极参与POC.要求是从下拉菜单中选择一个值,但是我能够单击旋转器元素,但下面的任何内容都无法识别我的uiautomator.结果,我无法从旋转器元素中选择任何值. 我正在附加脚本的代码块以及元素树快照. 在 //trying to click the dropdown list try{ WebElement parentElement1 = driver.findElement(By.id("retProdOp0")); WebElement childElement1 = parentElement1.findElement(By .xpath("//android.view.View[@index='1']")); childElement1.click(); driver.label("dropdown list 2nd element clicked"); }catch
4 2023-09-08
编程技术问答社区
真实设备与模拟器:UIAUTOMATOR不显示应用程序的资源-ID
我需要Appium- Android自动化测试的元素ID.当我将真实设备与uiautomator一起使用时,我会得到资源-ID与元素交互: driver.findElementById("com.xyz.android:id/GSG"); 但是,当我将模拟器与uiautomator一起使用时,没有资源 - 同一元素的ID,并且我的脚本也无法基于我的真实设备ID与元素进行交互...要解决这个问题或为什么这样的行为? 解决方案 我使用不同版本的Android设备找到了答案 - 解释是Android 4.3在UiautomatorViewer中具有ID组件.小于API级的Android版本将无法与元素的资源ID进行交互.
18 2023-08-27
编程技术问答社区
在Mac High Sierra上无法打开UIAutomatorviewer
我们拥有带有高塞拉的全新MacBook(10.13.6). 其他系统信息: JAVA Version: java version "11.0.1" 2018-10-16 LTS Java(TM)SE运行时环境18.9(构建11.0.1+13-LTS) java_home:/library/java/javavirtualmachines/jdk-11.0.1.jdk/contents/home 试图打开Android Uiautomatorviwer时,我们会得到以下错误: /Library/Android/sdk/tools/bin/uiautomatorviewer ; exit; /library/android/sdk/tools/lib不支持.使用-ClassPath 反而.错误:无法创建Java虚拟机.错误: 致命例外发生了.程序将会退出.注销保存 会话... ...复制共享历史记录... ...保存历史...截断 历史文件... ...完成.
22 2023-08-27
编程技术问答社区
如何在最新版的Appium中用Java滚动到特定元素?
我的元素在屏幕上不可见,但是当我使用.isdisplayed()方法时,我的代码如下 Point xy = send_mail.getCoordinates().onScreen(); int a=xy.getX(); int b =xy.getY(); System.out.println("a" + xy.getX() + "b" + xy.getY()); TouchAction touchAction = new TouchAction(driver); touchAction.moveTo(a, b); send_mail是要找到的元素的XPath.这是Tracelog的帮助!我在循环迭代时不能使用元素,因为它被认为可见y appium. . java.lang.UnsupportedOperationException: Not supported yet. at org
2 2023-08-23
编程技术问答社区