如何使用appium和python控制Android设备?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用appium和python控制Android设备?相关的知识,希望对你有一定的参考价值。
我是Appium的新手。我想通过appium控制我的Android设备,而不发送任何apk到手机。我尝试了很多例子,但在每个例子中,每个人都在推送apk然后使用touches和keypress控制它。
我不是在寻找应用程序测试,而是在寻找使用resorce id,name,class或xpath的android设备测试。
ios的程序是否也一样?
任何人都可以帮我在python中编写脚本吗?
不确定appium,但AndroidViewClient/culebra可以很容易地做你想要的。
安装它,使用或不使用GUI(culebra
)运行-G
,您将能够自动生成python测试或普通脚本。
例如,如果你跑
$ culebra -GuU --scale=0.5 -o chrome.py
当设备在主屏幕上并单击Chrome图标将其打开时,将生成此脚本
#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
Copyright (C) 2013-2018 Diego Torres Milano
Created on 2018-04-04 by Culebra v15.1.2
__ __ __ __
/ / / /
____________________/ __/ __/ __/ __\_____________________________
___________________/ /__/ /__/ /__/ /________________________________
| / / / / \___
|/ \_/ \_/ \_/ o
\_____/--<
@author: Diego Torres Milano
@author: Jennifer E. Swofford (ascii art snake)
"""
import re
import sys
import os
import unittest
from com.dtmilano.android.viewclient import ViewClient, CulebraTestCase
TAG = 'CULEBRA'
class CulebraTests(CulebraTestCase):
@classmethod
def setUpClass(cls):
cls.kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False}
cls.kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': False, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True}
cls.options = {'start-activity': None, 'concertina': False, 'device-art': None, 'use-jar': False, 'multi-device': False, 'unit-test-class': True, 'save-screenshot': None, 'use-dictionary': False, 'glare': False, 'dictionary-keys-from': 'id', 'scale': 0.5, 'find-views-with-content-description': True, 'window': -1, 'orientation-locked': None, 'concertina-config': None, 'save-view-screenshots': None, 'find-views-by-id': True, 'log-actions': False, 'use-regexps': False, 'null-back-end': False, 'auto-regexps': None, 'do-not-verify-screen-dump': True, 'verbose-comments': False, 'gui': True, 'find-views-with-text': True, 'prepend-to-sys-path': False, 'install-apk': None, 'drop-shadow': False, 'output': 'chrome.py', 'unit-test-method': None, 'interactive': False}
cls.sleep = 5
def setUp(self):
super(CulebraTests, self).setUp()
def tearDown(self):
super(CulebraTests, self).tearDown()
def preconditions(self):
if not super(CulebraTests, self).preconditions():
return False
return True
def testSomething(self):
if not self.preconditions():
self.fail('Preconditions failed')
_s = CulebraTests.sleep
_v = CulebraTests.verbose
self.vc.dump(window=-1)
self.vc.findViewWithContentDescriptionOrRaise(u'''Chrome''').touch()
self.vc.sleep(_s)
self.vc.dump(window=-1)
if __name__ == '__main__':
CulebraTests.main()
然后你可以运行它
$ ./chrome.py
随时实现同样的目标
我认为问题就像我的...想要用Appium控制一个Android设备或模拟器,可能是Mayank Shivhare已经尝试学习culebra并发现.... culebra仍然不支持python 3(同样的)像我这样的问题比python 2.7更喜欢python 3.7)。
我有同样的问题......,我现在理解的是:
- 应首先设置所有环境
- 在输入任何代码之前,应首先运行模拟器
- 然后运行Appium来建立一个带IP和端口的网关。
- 缺少的链接是如何通过appium服务器提供的ip和端口将模拟器连接到appium。
- 我可以通过从
sdk oolsin
文件夹运行'uiautomatorviewer.bat'来检测模拟器元素,问题是数字3中的问题,是如何通过appium向模拟器发送命令。所以控制模拟器的命令基于'uiautomatorviewer.bat'给出的数据
编码是关于试验和错误,因此我们需要实时交互,以构建源代码。每个开发人员都有兴趣构建脚本或源代码。所以...为了更容易,作为初学者,我们需要实时交互,在我们的脚本的每个步骤中显示每个错误,或者确保我们键入的脚本的每一行都在android设备或模拟器中顺利运行。
学习appium中的问题是所有手动已经给出完成的脚本...没有真正的基本解释...在我的情况下,如何将appium连接到模拟器,从python控制台发送命令,并看到脚本是工作或不...
我的意思是......我们需要逐步解释脚本...因为每个初学者都需要一个实时的“反复试验”经验才能理解它的工作原理......
以上是关于如何使用appium和python控制Android设备?的主要内容,如果未能解决你的问题,请参考以下文章
自动化测试 Appium之Python运行环境搭建 Part2
Android使用Appium+python控制真机,碰到的问题以及处理(持续更新)
Python爬虫编程思想(131):使用Appium抓取移动数据--控制App