Articles of appium

当应用程序在设备上运行时,无法获取uiautomator工具中的元素

我有一个设置,我的电脑中的Web应用程序正在访问连接设备上运行的应用程序信息。(通过USB调试)。 并不断将应用程序数据发送到Web应用程序(PC)。 我正在使用selenium(web GUI)和appium(设备)自动执行此操作以进行自动化测试。 问题:一旦应用程序在设备中启动并与Web应用程序通信(在我的PC中),我无法从uiautomator.bat工具连接到设备。 得到以下错误。 是否有针对此问题的解决方法。 ——– uiautomator.bat日志———– C:\ Users \ sat_yug \ android-sdks \ tools> uiautomatorviewer.bat 03:57:35 E / DeviceMonitor:Adb连接错误:远程主机强制关闭现有连接03:57:36 E / DeviceMonitor:连接尝试:1 03:57:38 E / DeviceMonitor:连接尝试次数:2 03:57:40 E / DeviceMonitor:连接尝试次数:3 03:57:42 E / DeviceMonitor:连接尝试次数:4 03:57:44 E / DeviceMonitor:连接尝试:5 03:58:04 E / DeviceMonitor:Adb连接错误:远程主机强行关闭现有连接 ———— adb devices log ——————— C:\ Users \ sat_yug \ […]

如何使用Java中的appium为Android本机应用程序执行滑动

我需要刷我的应用程序(从左到右,从右到左),这里我使用Java appium for android native app automation。 我试过这个链接, Swipe方法在android自动化测试中不起作用 但我不能,是否有任何其他链接请分享或任何人帮助我。

Appium无法获取“content-desc”属性数据

在下面的例子中,Appium能够正确地按类定位元素,但是当我们想要根据每个元素的content-desc操作数据时,我们会看到一个错误。 为什么我们不能获得content-desc的属性? 任何建议表示赞赏 List arrayOfProperties2 = driver.findElementsByClassName(“android.view.View”); List propertyMarkerEle = new ArrayList(); System.out.println(“Found arrayOfProperties2 total: “+ arrayOfProperties2.size()); for (WebElement property : arrayOfProperties2){ String contentDesc = property.getAttribute(“content-desc”); if (contentDesc.contains(“property”)) propertyMarkerEle.add(property); 错误:findarrayOfProperties2总数:​​32 org.openqa.selenium.NoSuchElementException:使用给定的搜索参数无法在页面上find元素。 (警告:服务器未提供任何堆栈跟踪信息)

在protractor config.js文件中设置autoWebview:’true’导致机器注销,ubuntu 16.04

设置autoWebview:’prot’在protractor配置文件导致系统注销,ubuntu 16.4 这是我的配置文件: exports.config = { seleniumAddress: ‘http://localhost:4723/wd/hub’, specs: [‘demo.js’], capabilities: { platformName : ‘android’, platformVersion : ‘4.4.2’, deviceName: ‘PNV4PN4LUORWSCRO’, directConnect: true, browserName: “android”, autoWebview: ‘ true’, app: ‘/path/abc.apk’, appPackage: ‘xyz’, appActivity: ‘.MainActivity’, newCommandTimeout: 140, autoWebviewTimeout: 10000, fulReset: true }, baseUrl: ‘http://10.0.2.2:8000’, allScriptsTimeout: 22000, onPrepare: function () { var wd = require(‘wd’), protractor = require(‘protractor’), […]

使用Appium进行强大的React Native元素查找

我正在使用React Native开发一个需要端到端测试的应用程序。 来自Selenium WebDriver背景,在我看来,与WebDriver相比,Appium中的元素查找可能非常笨拙,因为本机组件只有ID和单个非用户定义的类。 有没有办法可以为元素添加某种元数据,以便于查找? 假如我在一个单元格中有一个包含复杂元素的表,我需要首先find正确的行,然后是单元格,然后find正确的组件来操作单元格内部。 理想情况下,我希望能够通过搜索“myTargetRows”之类的内容来枚举行。 这会给我一个行列表。 如果我理解正确,在本机应用程序中没有两个组件可以具有相同的ID,所以我不能像这样使用ID,对吧? (即使用相同的ID,“myTargetRows”,用于多行组件)。 如果没有,我应该使用像“myTargetRow0”,“myTargetRow1”等编号ID,然后使用XPath部分匹配ID? 有没有更好的方法? 如果我可以做那样的事情,那么我可以将这些findElement调用链接起来find我想要的正确嵌套元素吗? Ps:我不想硬编码我的定位器中的确切组件层次结构,以避免在我的视图中移动任何东西时使它们无效,因此这些点击式解决方案无济于事。 Ps 2:解决方案必须适用于Android和iOS,即使我需要自己实现某种抽象。

无法使用Appium移动Android SeekBar

我有一个这样的自定义Android搜索栏,以及它可以移动到的位置。 它从中间开始: 我想首先移动滑块,然后检查它是否已保存。 我有一个使用TouchAction的方法: public void moveSeekBar(){ WebElement seekBar = appiumDriver.findElementById(“com.feverapp:id/SymptomTrackingActivity_var”); //Get start point of seekbar. int startX = seekBar.getLocation().getX(); System.out.println(startX); //Get end point of seekbar. int endX = seekBar.getSize().getWidth(); System.out.println(endX); //Get vertical location of seekbar. int yAxis = seekBar.getLocation().getY(); //Set slidebar move to position. // this number is calculated based on (offset + 3/4width) […]

如何从APPIUM中的脚本滚动列表

嗨,我在Android中使用APPIUM。 我需要做的是明智地滚动列表页面。 我尝试过以下。 MobileElement element =(MobileElement)driver.findElement(By.className(“android.widget.ListView”)); JavascriptExecutor js = (JavascriptExecutor) driver; HashMap scrollObject = new HashMap(); scrollObject.put(“direction”, “down”); scrollObject.put(“element”, ((RemoteWebElement) element).getId()); js.executeScript(“mobile: scrollTo”, scrollObject); 这可以工作,但列表会连续滚动,直到显示最后一个元素。 我需要做的是明智地滚动列表页面。

软键盘不存在,无法隐藏键盘 – Appium android

我得到以下exception: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. (Original error: Soft keyboard not present, cannot hide keyboard) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 368 milliseconds 我正在使用driver.hideKeyboard()来隐藏屏幕上打开的软输入键盘。 在隐藏键盘之前如何确保键盘处于打开状态? 或任何其他解决方法?

如何使用Java解雇appium中的键盘?

此代码只是为了find文本框并向其发送一些文本。 当它这样做时键盘出现在Android设备上。如何在sendKeys之后解除它。 @Test public static void test_demo() throws Exception { WebElement element = driver.findElement(By.id(“mytextfield”)); element.sendKeys(“test”); //how do I dismiss keyboard which appears on my android device after sendKeys? }

Appium:如何从Android For Work工作资料中启动应用程序

我需要启动一个具有不同工作档案的应用程序(Android For Work)。 如果在个人资料中安装应用程序,那么我可以从同一设备上的个人资料中启动应用程序。 但是, 当我仅在工作资料中安装应用程序时,我无法通过adb命令启动应用程序 。 根据我的理解,谷歌为个人和工作档案保留了两个不同的容器。 我认为工作资料具有不同的空间,而adb无法访问该应用和工作资料工作区。 我需要通过appium启动应用程序 如果有人对上述问题有答案,请回答。 提前致谢 !