Appium从环境搭建到测试脚本编写(三)

使用Appium-Inspector写出测试脚本

第一次写都是从模仿开始,网上找了一个模板,主要是要将元素定位的部分进行修改才能够本地测试用。

# 导入webdriver

from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy
from selenium.webdriver.common.by import By
from selenium.webdriver.support.expected_conditions import visibility_of_all_elements_located, \
    visibility_of_element_located
from selenium.webdriver.support.wait import WebDriverWait

# 初始化参数
desired_caps = {
    'platformName': 'Android',  # 被测手机是安卓
    'platformVersion': '9',  # 手机安卓版本
    'deviceName': 'PAR-AL00',  # 设备名,安卓手机可以随意填写
    'appPackage': 'com.test.AndroidBeta',  # 启动APP Package名称
    'appActivity': 'com.test.Android.AndroidActivity',  # 启动Activity名称
    'unicodeKeyboard': True,  # 使用自带输入法,输入中文时填True
    'resetKeyboard': True,  # 执行完程序恢复原来输入法
    'noReset': True,  # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
    'newCommandTimeout': 6000,
    'automationName': 'UiAutomator2'
}
# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

agree_continue_xpath = "/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[3]/android.widget.LinearLayout/android.view.View"
WebDriverWait(driver, 10, 1).until(visibility_of_element_located((MobileBy.XPATH, agree_continue_xpath)))
driver.find_element(By.XPATH, agree_continue_xpath).click()

chicang_xpath = "//android.view.View[contains(@content-desc,'首页')]"
WebDriverWait(driver, 10, 1).until(visibility_of_element_located((MobileBy.XPATH, chicang_xpath)))
driver.find_element(By.XPATH, chicang_xpath).click()

# 退出程序,记得之前没敲这段报了一个错误 Error: socket hang up 啥啥啥的忘记了,有兴趣可以try one try
driver.quit()

由于被测试软件开发过程不规范,基本上无法使用id来定位元素,这里都是使用xpath定位。

注:测试脚本中实现等待的几种方法

1.设置完等待后不管有没有找到元素,都会执行等待,等待结束后才会执行下一步

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
time.sleep(3)  # 设置强制等待
driver.quit()

2.设置全局等待,对每个查询的元素都生效,在等待时间内找到了该元素则执行下一步,未找到报错。

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.implicitly_wait(10)  # 设置隐性等待
driver.quit() 

3.显性等待

# 10为等待时间,1为在10s内每过1s去判断一次

WebDriverWait(driver, 10, 1).until(visibility_of_element_located((MobileBy.XPATH, chicang_xpath)))

找不到元素会报错

Appium-Inspector还有一个录制功能,对于初次写测试脚本的人来说非常友好,只是实际测试发现部分操作生成的脚本不能直接使用,还需要进行适配修改。

操作实例:

原生app模式,左侧xpath可用于定位元素

 刷新界面

 开始录制

 单击操作

 滑动操作,先在屏幕上点击滑动启动点,再选择一个滑动终止点

不知道什么原因,自动生成的脚本这里的坐标都无法显示出来

 经过改动后可使用

start_x = 657
start_y = 685
end_x = 457
end_y = 685
actions = ActionChains(driver)
actions.w3c_actions = ActionBuilder(driver, mouse=PointerInput(interaction.POINTER_TOUCH, "touch"))
actions.w3c_actions.pointer_action.move_to_location(start_x, start_y)
actions.w3c_actions.pointer_action.pointer_down()
actions.w3c_actions.pointer_action.move_to_location(end_x, end_y)
actions.w3c_actions.pointer_action.release()
actions.perform()

点击操作

 取出脚本

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤面不加鱼丸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值