appium android,Appium_Android使用详解

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

我们在做ui自动化测试时,首先需要查找元素,定位元素,那么怎么定位元素呢?其实sdk下有利器帮你,今天我就写下如何查找定位元素,并如何去开展ui自动化。

1、元素定位

我们可以通过sdk/tools/下的uiautomatorviewer.bat查看元素的类别,有多方式:name、id、class_name、xpath等。

450af04eb4386b885880d06400ec0fb9.png

通过这张图我们可以查看,我们要操作的界面,包含了几个属性,首先有text,resource-id,class等,这样我们就可以对应appim提供的api的name、id、class_name属性对应对头查找操作。

2、通过appium api操作页面中的元素

例如我们想用代码找到操作王者神奇,我们可以通过我们看到他其实是有text属性的,这样我们就能通过driver.find_element_by_name(“王者传奇”)找到它,例如我们要点击它就可以driver.find_element_by_name(“王者传奇”).click()对它操作。

当然我们也是可以通过它的其他属性的,例如driver.find_element_by_id(“com.wndoujia………..”);也可以通过driver.find_element_by_class_name(“android.widget.Textview”).

3、一些常用的动作方法

A)click(点击操作)

driver.find_element_by_name(“王者传奇”).click()

B)text (获取文字)

driver.find_elements_by_class_name("android.widget.TextView").text

C)send_keys(输入内容,如果控件的属性是inputtext的话)

driver.find_element_by_id(“android.input.text”).send_keys(“aaaa”)

D) swipe(滑动)

driver.swipe(200 , 500 , 400 , 500, 3000)

这个其实就是从坐标x,y轴(200,500)滑到(400,500),3000代表持续时间为3s。

4、appium的测试代码示例

import os

import unittest

fromappium importwebdriver

fromtime importsleep

# Returns abs path relativeto this file and not cwd

PATH= lambdap: os.path.abspath(

os.path.join(os.path.dirname(__file__), p)

)

classContactsAndroidTests(unittest.TestCase):

def setUp(self):

desired_caps = {}

desired_caps['platformName']= 'Android'

desired_caps['platformVersion']= '4.2'

desired_caps['deviceName'] = 'Android Emulator'

desired_caps['app'] = PATH(

'../../../sample-code/apps/ContactManager/ContactManager.apk'##这里是你要测试的app路径

)

desired_caps['appPackage'] = 'com.example.android.contactmanager'#这里是你要测试app的包名

desired_caps['appActivity']= '.ContactManager'#这里是你启动app的首个activity名

self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

def tearDown(self):

self.driver.quit()

def test_add_contacts(self):

el = self.driver.find_element_by_id("Add Contact")

el.click()

textfields =self.driver.find_elements_by_class_name("android.widget.EditText")

textfields[0].send_keys("Appium User")

textfields[2].send_keys("someone@appium.io")

self.assertEqual('Appium User',textfields[0].text)

self.assertEqual('someone@appium.io',textfields[2].text)

self.driver.find_element_by_id("Save").click()

if__name__ == '__main__':

suite = unittest.TestLoader().loadTestsFromTestCase(ContactsAndroidTests)

unittest.TextTestRunner(verbosity=2).run(suite)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值