appium

How do i select value from dropdown of a hybrid app using appium?

馋奶兔 提交于 2020-03-03 12:17:28
问题 I am relatively new to appium, and is actively involved in a poc. The requirement is to select a value from the drop down, however i am able to click the spinner element but anything below that is not getting recognized my uiautomator. as a result i am not able to select any values from the spinner element. I am attaching the code block of the script and also the element tree snapshot. //trying to click the dropdown list try{ WebElement parentElement1 = driver.findElement(By.id("retProdOp0"))

App自动化01-Appium概述

梦想的初衷 提交于 2020-03-03 11:42:36
Appium简介 Appium是一个开源、跨平台的测试工具,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及Windows 平台。Appium使用WebDriver的json wire协议,来驱动IOS系统的UIAutomation库、Android系统的UIAutomator框架。它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。下面的是为其官网上面的介绍: Appium is an open-source tool you can use to automate mobile native, mobile web, and mobile hybrid applications on iOS and Android platforms. “Mobile native apps” are those written using the iOS or Android SDKs. “Mobile web apps” are web apps accessed using a mobile browser (Appium supports Safari on iOS and Chrome on Android). “Mobile hybrid apps” have

appium+robotframework环境搭建

风格不统一 提交于 2020-03-03 00:13:43
没有安装 python , selenium ,robotframework ,浏览器驱动 环境搭建的步骤 但是这些软件必须安装,环境必须搭建 安装软件的位数要统一 1 、 安装 Jdk 安装 JDK1.8 以上版本, 1.8 以下的会有很多为止问题,安装很简单,下载好了之后,双击,默认路径一直下一步即可! 配置环境变量,新建一个 “系统环境变量”,变量名为 JAVA_HOME, 变量的值为 JDK 的安装路径( Jdk 默认安装路径为: C:\Program Files\Java\jdk1.8.0_121 )。 JAVA_HOME C:\Program Files\Java\jdk1.8.0_121       然后在系统变量 path 中添加: %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin   注:每个添加的环境变量都是以 ; 结尾!       如图上图所示:我这个后面结尾是没有 ; 的,所以我自己需要加一个!   3. 打开命令行输入: java –version (注: java( 空格 )-version )   出现下图所示, Jdk 即安装成功    2 、 android-sdk 安装 建议安装在根目录下(我这里安装在 C:\android-sdk ) --> 安装完成后 --> 点击 SDK Manager.exe -->选中下载 -

Appium + Python自动化测试学习之三:元素等待机制

大憨熊 提交于 2020-03-01 17:52:56
在我们自动化过程中,能否构建一个健壮和可靠的测试是UI自动化测试能否成功的关键因素之一。然而在自动化过程中试着去执行的时候,常常会出现各种不同的状况,当使用脚本定位元素或者去验证程序的运行状态时,有时候会发现找不到元素,这可能是由于突然的资源受限或者网络延迟或者机器性能等各种因素引起的响应速度太慢导致的,这时候测试报告就会返回测试失败的结果。其实元素是正常加载的,只是加载的时间晚了一点,那么遇到这种情况我们该怎么解决呢? 我们需要在测试脚本中引入延时机制,来使脚本的运行速度与程序元素的加载速度匹配。通俗意义上讲,就是我们需要使脚本和程序的响应能够同步。 我们有三种等待机制,强制等待、隐式等待和显式等待。 如何使用隐式等待或显式等待? 在什么情况下使用隐式等待或显式等待? 什么情况下使用强制等待? 一.隐式等待 隐式等待是通过一定的时长等待页面上某元素加载完成。如果超出了设置的时长元素还没有加载完成,则会抛出NoSuchElementException的异常。 一旦设置,隐式等待时间就会作用于这个webdriver实例的整个周期或者一次完整测试的执行周期,并且webdriver会使其对所有测试步骤中包含整个界面的元素的查找时都有效,除非把默认时间设置回0。 webdriver提供了implicitly_wait()方法来实现隐式等待,默认参数是以秒为单位。如下实例: from

Java + Selenium + Appium手机自动化测试

允我心安 提交于 2020-02-29 07:43:00
一、启动测试机或者Android模拟器(Genymotion俗称世界上最快的模拟器,可自行百度安装) 二、启动Appium(Appium环境安装可自行百度) 三、安装应用到Genymotion上,如下图我安装一个计算机的小应用,包名为CalcTest.apk 安装步骤:(基于Android SDK已经配置好了环境变量,可自行百度) 1、Win + R 2、CMD 3、adb devices --检查操作,列出存在的设置名称 4、adb install F:\Appium\CalcTest.apk --正式安装App 测试apk下载地址: https://files.cnblogs.com/files/yyym/CalcTest.apk 如下图:192.168.229.101:5555就是我刚开启的Genymotion虚拟机 四、安装成功之后回到Genymotiong可以看到已经安装成功了 打开该应用,可以看到实际是个简单的计算器 五、打开Eclipse创建Maven项目并使用uiautomatorviewer工具(Android SDK工具包自带的)进行基本元素定位操作,元素定位方式前面我们已经详细讲解过了。 1、打开Android SDK可找到路径:android-sdks\tools如下(获取App包名可反编译:aapt dump badging apk路径) 2

Exception in thread “main” org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {ELEMENT=1}

岁酱吖の 提交于 2020-02-28 23:23:51
问题 Please solve my query Hi write the same code that you mention on your site for appium native app, but its gives error main error is :- Exception in thread "main" org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {ELEMENT=1} Please check the attachment for more clarification My code :- private static AndroidDriver driver; public static void main(String[] args) throws MalformedURLException, InterruptedException { // TODO Auto-generated method stub //

appium学习总结

只谈情不闲聊 提交于 2020-02-28 14:03:32
建立session时常用命令: DesiredCapabilities cap = new DesiredCapabilities(); cap.SetCapability(“browserName”, “”); // web 浏览器名称(‘Safari’ ,'Chrome’等)。如果对应用进行自动化测试,这个关键字的值应为空。 cap.SetCapability(“platformName”, “Android”);//你要测试的手机操作系统 cap.SetCapability(“platformVersion”, “4.4”);//手机操作系统版本 cap.SetCapability(“automationName”, “selendroid”); //你想使用的自动化测试引擎:Appium (默认) 或 Selendroid cap.SetCapability(“deviceName”, " Android Emulator"); //使用的手机类型或模拟器类型,真机时输入Android Emulator或者手机型号 cap.SetCapability(“udid”, udid); //连接的物理设备的唯一设备标识,Android可以不设置 cap.SetCapability(“newCommandTimeout”, “300”); //设置收到下一条命令的超时时间

appium入门篇(2)--desired capabilities

ぃ、小莉子 提交于 2020-02-27 21:54:43
目录 1、appium工作原理 desired capabilities 2、准备工作 3、第一个appium脚本 获取包名和启动的activity 编写脚本 运行结果 1、appium工作原理 启动appium server appium client 发送Desired Capabilities信息给appium server,appium server返回一个session id给client appium client发送指令给appium server,appium server把命令发送到移动设备上去执行 移动端设备将执行结果返回给appium server,appium server再返回给client desired capabilities desired capabilities是什么,它的作用是告诉appium server被测试apk相关的信息,移动设备相关的信息。直接上官网的解释,地址: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md Desired Capabilities are keys and values encoded in a JSON object, sent by Appium clients to the server

MAC平台基于Python的Appium环境搭建

末鹿安然 提交于 2020-02-27 21:05:39
前言 最近笔者要为python+appium课程做准备,mac在2019年重新安装了一次系统,这次重新在mac下搭建appium环境,刚好顺带写个文稿给大家分享分享搭建过程。 一、环境和所需软件概述 1.1 目前环境: MacOS(10.15.3) 1.2 所需软件: jdk-8u91-macosx-x64.dmg (jdk1.8及以上版本应该都可以) android-sdk_r24.4.1-macosx.zip (mac版本的android-sdk) genymotion-3.0.4.dmg (非常好用的android虚拟机软件) VirtualBox.pkg (5.2.34版本,一般使用最新版本即可,mac上安装genymotion必备的软件) Appium-mac-1.15.1.dmg(appium桌面版) python 3.8.0 pycharm2019.02.05(Community Edition 免费公共版本即可) 二、搭建过程详述 2.1 mac下搭建jdk 2.1.1 先按平时的方法双击dmg文件,根据提示安装完成 2.1.2 在mac下配置java的环境变量 步骤一:打开mac终端命令行工具,输入“/usr/libexec/java_home -V”,查找java安装路径,如下图: 步骤二:复制java安装路径后,再输入 “vi ~/.bash_profile”

移动端测试 - Appium-Python-Client-API

烈酒焚心 提交于 2020-02-25 19:29:26
About Appium-Python-Client-API 来看看 appium-python-client 库都有哪些常用的api可用。 contexts Lib\site-packages\appium\webdriver\extensions\context.py @property def contexts(self): """Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 Usage: driver.contexts Return: :obj:`list` of :obj:`str`: The contexts within the current session """ return self.execute(Command.CONTEXTS)['value'] 可以跟 switch_to_content() 连用,用于切换到相应的H5控件中。 current_context Lib\site-packages\appium\webdriver\extensions\context.py @property def context(self): """Returns the current context of the current session.