Appium自动化二

这篇博客介绍了如何使用Appium进行Android应用自动化测试,包括点击元素、清空输入框、滑动屏幕、获取界面属性、模拟用户交互以及验证页面内容等操作。通过具体的代码示例展示了如何启动应用、执行搜索功能、登录操作,并提供了截图和断言等辅助验证手段。
摘要由CSDN通过智能技术生成

实操常用Api :

常用API:
点击
也可以用tab实现点击操作
box=driver.find_element_by_id(“com.xsteach.appedu:id/rl_home_top_search”)

box.click()
清空
driver.find_element_by_id(“editText”).clear()
左右上下滑动
‘’‘左滑’’’
x = driver.get_window_size()[‘width’]
y = driver.get_window_size()[‘height’]
driver.swipe(x*3/4,y/4,x/4,y/4)

‘’‘右滑’’’
x = driver.get_window_size()[‘width’]
y = driver.get_window_size()[‘height’]
driver.swipe(x/4,y/4,x*3/4,y/4)

‘’‘下滑’’’
x = driver.get_window_size()[‘width’]
y = driver.get_window_size()[‘height’]
driver.swipe(x/2,y*3/4,x/2,y/4)

‘’‘上滑’’’
x = driver.get_window_size()[‘width’]
y = driver.get_window_size()[‘height’]
driver.swipe(x/2,y/4,x/2,y*3/4)
滑动界面
from appium.webdriver.common.touch_action import TouchAction
def test_scroll_down(driver):
screen = driver.get_window_size()
action = TouchAction(driver)
action.press(x=screen[‘width’]/2,y=screen[‘height’]/2)
action.move_to(x=0,y=-screen[‘height’]/10)
action.release()
action.perform()
解锁密码是可以用
获取界面属性,控件属性
1)获取当前Activity名称activity = driver.current_activity
2) 获取屏幕宽高screen = driver.get_window_size()
3)获取控件文本mobile_name.get_attribute(‘text’) 或者 mobile_name.text
4)获取控件类名mobile_name.get_attribute(‘className’)
5)判断控件是否显示mobile_name.is_displayed() 或者 mobile_name.get_attribute(‘displayed’)
6)获得控件位置mobile_name.location
7)获得控件大小mobile_name.size
8)查找控件子结点parent.find_elements_by_class_name(‘android.widget.TextView’)

同样:查找控件的其它方法,也适用于查找子结点。对于交互后的验证,无法验证到具体的数据内容,可以验证当前的Activity,或者文本,或者列表是否为空等等。
截屏
img_folder = os.path.abspath(os.path.join(os.path.dirname(file), “…”)) + ‘pic\’

cur_time =time.strftime(’%Y%m%d%H%M’, time.localtime(time.time()))

screen_save_path = img_folder + cur_time + ‘.png’

print(screen_save_path)
time.sleep(2)
driver.get_screenshot_as_file(screen_save_path)
断言某个词汇是否在当前页面显示
assert “建筑设计” in driver.page_source

模拟点击返回键
driver.press_keycode(4)
其中按钮的定义,由Android里的KeyEvent.java里定义的,所以其它的Android按钮也是支持的。

注意点:
关闭driverdriver.quit()注意:一定要记得关闭driver, 否则下次连接的时候可能会出异常,因为Appium以为你上次未关闭,会创建Session失败。

实操:用开源:

from appium import webdriver

import time

caps = {}

caps[“appPackage”] = “com.xsteach.appedu”

caps[“appActivity”] = “com.xsteach.appedu.StartActivity”

caps[“platformName”] = “Android”

caps[“platformVersion”] = ‘8’

caps[“deviceName”] = ‘3HX0217115011233’

caps[“unicodeKeyboard”] = True

caps[“autoAcceptAlerts”] = True #对权限弹窗进行授权

caps[“resetKeyboard”] = True

caps[“noReset”] = True

caps[“newCommandTimeout”]=6000

driver = webdriver.Remote(“http://localhost:4723/wd/hub”, caps)

#获取手机大小 {‘width’: 720, ‘height’: 1280}

size = driver.get_window_size()

print(size)

print(driver.is_app_installed(“com.xsteach.appedu”))

#关闭app

driver.close_app()

搜索的完整实例

from appium import webdriver

import time

caps = {}

caps[“appPackage”] = “com.xsteach.appedu”

caps[“appActivity”] = “com.xsteach.appedu.StartActivity”

caps[“platformName”] = “Android”

caps[“platformVersion”] = ‘8’

caps[“deviceName”] = ‘3HX0217115011233’

caps[“unicodeKeyboard”] = True

caps[“autoAcceptAlerts”] = True #对权限弹窗进行授权

caps[“resetKeyboard”] = True

caps[“noReset”] = True

caps[“newCommandTimeout”]=6000

driver = webdriver.Remote(“http://localhost:4723/wd/hub”, caps)

#获取手机大小{‘width’: 1080, ‘height’: 1808}

size = driver.get_window_size()

print(size)

查看指定包名的app是否已经安装

print(driver.is_app_installed(“com.xsteach.appedu”))

#driver.start_activity(‘com.xsteach.appedu’, ‘.StartActivity’)

打印一下当前页面的activity

print(driver.current_activity)

time.sleep(5)

uList = driver.find_elements_by_android_uiautomator(“new UiSelector().text(“个人中心”)”)

print(uList[0].text)

box=driver.find_element_by_id(“com.xsteach.appedu:id/rl_home_top_search”)

box.click()

time.sleep(2)

box=driver.find_element_by_id(“com.xsteach.appedu:id/editText”)

time.sleep(2)

box.send_keys(“python”)

time.sleep(4)

driver.find_element_by_id(“com.xsteach.appedu:id/item_tv_dynamic_search_result”).click()

time.sleep(3)

#关闭app

driver.close_app()

#2、他可以跳过某些场景,达到某个页面

element = driver.find_element_by_android_uiautomator(‘new UiSelector().text(“新用户”)’)

element.click()

print(driver.current_activity)

ele = driver.start_activity(‘com.xsteach.appedu’, ‘.StartActivity’)

print(driver.current_activity)

time.sleep(5)

box=driver.find_element_by_id(“com.xsteach.appedu:id/rl_home_top_search”)

box.click()

time.sleep(2)

box=driver.find_element_by_id(“editText”)

time.sleep(1)

box.send_keys(“设计”)

time.sleep(3)

box.clear()

box.send_keys(“编程”)

driver.find_element_by_id(“tv_Text”).click()

登录的完整实例

from appium import webdriver

import time

import os

caps = {}

caps[“appPackage”] = “com.xsteach.appedu”

caps[“appActivity”] = “com.xsteach.appedu.StartActivity”

caps[“platformName”] = “Android”

caps[“platformVersion”] = ‘8’

caps[“deviceName”] = ‘3HX0217115011233’

caps[“unicodeKeyboard”] = True

caps[“autoAcceptAlerts”] = True #对权限弹窗进行授权

caps[“resetKeyboard”] = True

caps[“noReset”] = True

caps[“newCommandTimeout”]=6000

driver = webdriver.Remote(“http://localhost:4723/wd/hub”, caps)

driver.implicitly_wait(5)

person_center =driver.find_element_by_id(“content_rb_mine”)

#person_center = driver.find_elements_by_android_uiautomator(“new UiSelector().text(”+个人中心")")

person_center.click()

log_in = driver.find_element_by_id(“tvLogin”)

log_in.click()

driver.find_element_by_id(“etUser”).send_keys(“fosterwu”)

driver.find_element_by_id(“etPwd”).send_keys(“gloryroad123”)

driver.find_element_by_id(“btnLogin”).click()

time.sleep(3)

driver.close_app()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值