我有: Android SDK工具,修订版22 Android SDK平台,API 18 我转到/tools/,我看到有一个名为" uiautomatorviewer"的文件, i在上述路径下从终端执行命令uiautomatorviewer,但是我收到以下消息: uiautomatorviewer: command not found 为什么? 解决方案 因为您的tools/目录不在您的PATH中.要么使用./uiautomatorviewer或添加tools/(可能platform-tools/可能platform-tools/. ). 其他解决方案 请注意,uiautomatorviewer可执行文件已在其他解决方案 导航到工具文件夹,然后使用./monitor命令启动终端,启动监视器(Android设备监视器). ADM将启动,窗口的左侧您可能会找到
以下是关于 android-uiautomator 的编程技术问答
我正在与Nexus 5和Cyanogen One Plus设备一起使用Lollipop Android OS.我正在尝试测试某些应用程序的各种通知.我成功地测试了使用UIAUTOMATOR测试托盘通知和锁定屏幕通知,但我无法在HeadSup Notification中取得任何成功.我尝试关注代码,但无法检测到它. public void test_HeadsupTitle() throws InterruptedException, UiObjectNotFoundException, IOException { //some code to bring up headsup notification UiObject maxHeadsUp = new UiObject(new UiSelector().packageName("com.android.systemui").resourceId("android:id/status_bar_latest_e
有人能够实现这一目标.可滚动,Swipeleft和Swiperight似乎对此没有任何影响.我正在使用最新API的Nexus 5模拟器.有人能够实现它吗? 解决方案 tl; dr :使用 设置导航抽屉时,设置一个ActionBarDrawerToggle,其中包含打开和关闭的内容说明. // Open drawer content description for accessibility private static final String CONTENT_DESCRIPTION_OPEN_DRAWER = "Open drawer"; // Close drawer content description for accessibility private static final String CONTENT_DESCRIPTION_CLOSE_DRAWER = "Close drawer"; private void setUpNavigationDraw
我有一个可访问性服务(AS)跑步以程序上获取有关屏幕上当前显示的内容的信息. 现在我想设置一些UIAUTOMATOR测试用例.但是,如果我有运行uiautomator的AS,则会给出以下错误: INSTRUMENTATION_RESULT: shortMsg=java.lang.SecurityException INSTRUMENTATION_RESULT: longMsg=Permission Denial: getIntentSender() from pid=9700, uid=2000, (need uid=1000) is not allowed to send as package android 我已经搜索了网络,发现很多人遇到了这个问题,但没有解决方案. 因此,这是缺乏兼容性问题,还是有办法解决它(或至少是一个工作的方法)? 注意:如果您对如何阅读/访问屏幕的内容有其他想法,因为我全都没有耳朵(在这种情况下更多的眼睛...),但是我对其他解
我想知道如何在android uiautomator -e选项(名称值对)中发送带有空间的文本 for ex: adb shell uiautomator runtest启动settings.jar -c com.uia.example.my.launchsettings 我想发送像 adb shell uiautomator runtest lunchsettings.jar -c com.uia.example.my.launchsettings -e appname temple run 但是获取错误消息,例如: 不支持的独立参数. 尝试着像"寺庙"或"寺庙奔跑",但无用. 请建议 解决方案 String defaultAppName = "My super App"; String toAppName = getParams().getString("appName"); //pass app name w
我想使用C#和Appium在Android模拟器上自动化移动网站测试.我想开始自动化一个简单的测试方案: 1.启动浏览器 2.找到一个元素 3.清除 4.发送键 我对第二步有问题.每次MSTest尝试在下面的代码中执行FindElementById行时,我都会收到错误: "一个元素不能使用给定的搜索参数位于页面上." [TestClass] public class UnitTest1 { private DesiredCapabilities _capabilities; private AndroidDriver _driver; public void InitializeDriver() { Console.WriteLine("Connecting to Appium server"); _capabilities = new DesiredCapabilities(); _
显然,我需要正确的导入量来解决此问题.根据import android.support.test.runner.AndroidJUnit4; 当我这样做时,Android Studio在红色和抱怨中突出显示runner"无法解决符号'跑者'. 背景 我通过在Android开发人员网站上的教程configurations.all { resolutionStrategy.force 'com.android.support:support-annotations:22.1.0' } 这解决了直接错误,但我怀疑这导致了我当前的问题.有人对如何解决此问题有任何建议吗? 来自./gradlew:app:depentencies 的相关部分 androidTestCompile - Classpath for compiling the androidTest sources. +--- com.jayway.android.robotium:robotium-s
我正在尝试通过作为androidjujit runner运行的apk获取蓝牙发现结果.一切都适用,但是,虽然注册更新,但我得到以下错误.可能是什么原因? java.lang.securityException:给定的来电包com.ex.test在进程过程中未运行{d740580 19462:com.ex/u0a302} 代码 - @Test public void demo() throws Exception { Context ctx = InstrumentationRegistry.getInstrumentation().getContext(); BluetoothAdapter mBtAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBtAdapter.isDiscovering()) { System.out.println("Stop ongoing d
这只发生在AVD管理器中的AVD设备上.当捕获来自GenyMotion的UiautomatorViewer屏幕截图时,我从未收到此错误. 试图在Android设备监视器内捕获...它给了我一些细节: 原因: 获取UI层次结构时出错 解决方案 如果可以,请使用haxm加速度关闭.我必须使用一个配置文件运行测试,然后在物理设备上运行测试以获取屏幕截图.基本上,如果AVD使用GPU或Snapshot,即使在USB附加的设备上运行,屏幕截图也会失败.这是Uiagutomator的一个错误,根据参与安排平台的开发人员. 其他解决方案 除了休斯顿海恩斯给出的答案外,如果您为您的活动设置了标志,可能会发生问题: getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE); 您只能评论代码并通过任何内容(Android Studio
我有以下脚本,用于使用Uiagutomator将"33"输入"33"进入Calculator中的计算器.但是,只接受了第一个'3',第二次新闻完全被忽略了. import com.android.uiautomator.core.*; import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class MyFirstUiAutomatorTest extends UiAutomatorTestCase { UiObject getByDescription(String description) { return new UiObject(new UiSelector().description(description)); } UiObject getByText(String description) { return new UiOb
我正在尝试使用Appium和Webdriver自动执行Android应用程序.当我给出无效凭据登录应用程序时出现吐司,我想断言这个Toast.Also的文本,我无法使用Android UiautomatorViewR捕获这种多士的屏幕截图.如何在Android中处理Toast?任何想法!! 解决方案 是的,但只有使用Uiagutomator2,只需通过该参数并使用以下代码: DesiredCapabilities caps = DesiredCapabilities.android(); caps.setCapability("automationName", "uiautomator2"); caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiautomator2"); WebElement toastView = _ForgetPasswordDriver.findElement(By.xpath("
我一直在尝试使用uiautomator android构建测试项目罐文件,但我正在构建失败的错误. 我在此处使用gradle和uiautomator android form- 我使用了以下命令: android create uitest-project -n ProjectName -t 46 -p D:\Android_Workspace\Smriti\ProjectName set ANDROID_HOME=D:\Android Development\android-sdk cd D:\Android_Workspace\Smriti\ProjectName gradle build //here I get build failed error 我的gradle-properties如下所示: androidSdkHome = D:/Android Development/android-sdk androidSdkTarget =
我与谷歌的Uiautomator有相当多的经验;但是,在向手机的主屏幕中添加小部件时,我似乎已经陷入困难.现在,让我们保持简单并假设窗口被添加到空.思想过程将要打开App Wapter>单击窗口小部件选项卡>查找要添加的窗口小部件>长单击并将窗口小部件拖动到主屏幕.似乎小部件不是"长可点击".任何想法/建议/解决方案都将得到欣赏.我实施的代码在下面. @Override protected void setUp() throws UiObjectNotFoundException { getUiDevice().pressHome(); new UiObject(new UiSelector().className(TEXT_VIEW).description("Apps")).clickAndWaitForNewWindow(); new UiObject(new UiSelector().className(TEXT_VIEW).text("Widge
我已经使用 uiautomator 创建了简单的Android测试.在这些测试中,我想确认数据库中添加了一些数据. 在我的PC中,我可以连接到数据库,但是在虚拟Android设备中,我会收到以下错误: java.lang.classnotfoundexception:找不到类 路径上的" net.sourceforge.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
我的元素在屏幕上不可见,但是当我使用.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.op
isChecked()方法已弃用? 我正在编码Android UI并使用UIAUTOMATOR框架,该Mathod未显示 我试图通过isChecked()验证一个uiobject是否单击. 从下面的链接中,我知道它已弃用,现在我们应该使用getValue(). http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/ui/CheckBox.html 代码: UiObject object = new UiObject(new UiSelector().text("Airplane mode")); if(object!=null) { if(!object.isChecked()) object.click(); } 这里的问题是getValue方法不显示我的使用,isChecked()始终将false返回给我. 任何人都可以给我任何建议.
我正在使用Eclipse IDE. 这是我的uiautomator testcase的代码: public class caltest extends UiAutomatorTestCase { public void testDemo() throws UiObjectNotFoundException, IOException { //mytesstcode } } 要运行此测试,我必须从命令行发出以下命令: /tools/android创建uitest -project -n -t 1 -p 转到build.xml文件所在的项目目录并构建测试罐. --->蚂蚁构建 使用ADB PUSH命令: ---> ADB推/数据/local/tmp/ ----> adb shell uiautomator runtest jarname.jar -c caltest 有没有任何方法可以在不使用命令行的情况下运行测试 解决方
最近我尝试从Android UIAUTomation测试开始. 从开发人员网站的教程我已经完成了几次,并且在遇到一些问题并解决了问题之后,我遇到了一个更大的问题. 我创建了一个项目,导入了两个JAR文件,并构建了Java TestCase方案(来自教程的一个.) 之后,我用shell命令行创建了一个uitest projekt.更新了build.xml创建了一个JAR文件并将其推到我的设备上. ,就这一点而言,一切都很好. 但是尝试使用命令行运行我的测试: adb -s shell uiautomator runtest DeviceUnlocker.jar -c c.d.d.DeviceUnlocker 我只会得到错误: instrumentation_result:shortmsg = java.lang.runtimeException Instrumentation_Result:longmsg =找不到