appium笔记一:appium server + appium python client

1.appium server启动

  • 连接手机,启动服务
# 选定目录,在此目录下创建日志文件
$ appium -g android.log
[Appium] Welcome to Appium v1.20.2
[Appium] Non-default server args:
[Appium]   logFile: android.log
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

2.执行脚本

# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python

# 导入库
from appium import webdriver

caps = {}
caps["platformName"] = "Android"
caps["deviceName"] = "demo"
caps["appActivity"] = "com.czy.hiconmultiscreen.mvp.ui.splash.SplashActivity"
caps["appPackage"] = "com.czy.hiconmultiscreen"
caps["autoGrantPermissions"] = "true"
caps["ensureWebviewsHavePages"] = True
# 不重置app信息
caps['noReset'] = True

# 初始化实例,调用导入库的方法
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)

# case
# 消息
el2 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.widget.ImageView")
el2.click()
# 密码登录
el3 = driver.find_element_by_id("com.czy.hiconmultiscreen:id/login_password")
el3.click()
# 返回
el4 = driver.find_element_by_id("com.czy.hiconmultiscreen:id/backImageView")
el4.click()
# 返回
el5 = driver.find_element_by_id("com.czy.hiconmultiscreen:id/backImageView")
el5.click()


# 断言

# driver.quit()

3.具体操作

  • 适当加等待时间
    提示没有找到元素是因为页面还没有加载完成,脚本就开始执行下一步了,所以会有元素找不到。解决方法是加上延时
selenium.common.exceptions.StaleElementReferenceException: Message: The element 'By.id: com.czy.hiconmultiscreen:id/backImageView' does not exist in DOM anymore
# 在找不到元素的操作之前加上延时
import time
time.sleep(2)
  • TouchAction
    (1)使用scroll时,Android手机坐标变化,页面未真正滑动。解决办法:将press换成long_press
    (2)可在手机开发者选项中,打开“显示触摸操作”和“指针位置”
size = self.driver.get_window_size()
action = TouchAction(self.driver)
# action.press(x=size['width'] * 0.8, y=size['height'] * 0.8).move_to(x=size['width'] * 0.2, y=size[
action.long_press(x=size['width']*0.8, y=size['height']*0.8).move_to(x=size['width']*0.2, y=size['height']*0.2).release().perform()
time.sleep(2)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值