python/appium实现app自动化登录

from appium import webdriver
import time,traceback
desired_caps = {}
# 测试平台,不能写错
desired_caps['platformName'] = 'Android'
# 平台版本,不能写错
desired_caps['platformVersion'] = '8.1.0'
# 设备名称,android上随便填写一个值
desired_caps['deviceName'] = 'test'
# apk 文件路径名,如果设备还没有此应用,则会安装。
desired_caps['app'] = r'd:\apk\toutiao.apk'
# app package名,一定要有,是开发者给app取的名字,可以唯一标识这个app。
desired_caps['appPackage'] = 'io.manong.developerdaily'
# app启动Activity,也是必须的参数。安卓应用一个Activity 就对应
#一个用户操作界面
desired_caps['appActivity'] = 'io.toutiao.android.ui.activity.LaunchActivity'
# 如果我们自动化,要输入的信息里面有中文字符,需要这个参数,否则可以不要
# 加上这个参数会新加一种unicode输入法
desired_caps['unicodeKeyboard'] = True
# 表示测试完后,输入法还要还原成原来的,比如原来是搜狗输入法
desired_caps['resetKeyboard'] = True
# 这个noReset参数,非常重要!!
# 保证了app 测试前不会清除数据,缺省是会清除数据的
desired_caps['noReset'] = True
# 我们的测试程序连接上appium server后,appium server 一直等待client 的命令。
#如果超过一定的时间,没有命令,比如debug的时候,它就会认为客户端已经退出了。就会断开连接
#这个参数就是指定多长时间,appium
#erver可以认为连接已经断开了
desired_caps['newCommandTimeout'] = 6000
# 启动Remote RPC,将 capability参数传入,
#创建一个
#webdriver对象, 和Selenium
#类似。
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

try:
        # 和Selenium含义一样
    driver.implicitly_wait(10)
        # 下面的这些代码,就是根据id找到元素,并操作,比如点击、输入文本, 或者获取文本,判断是否和预期相同。
    driver.find_element_by_id(
        "io.manong.developerdaily:id/tab_bar_plus").click()
    time.sleep(1)
    driver.find_element_by_id(
        "io.manong.developerdaily:id/btn_email").click()
    time.sleep(1)
    # 输入用户名、密码
    ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_email")
    ele.send_keys('XXXXXXXXX')
    ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_password")
    ele.send_keys('XXXXXXXXXXXXX')
    time.sleep(2)
    # 点击登录
    driver.find_element_by_id(
        'io.manong.developerdaily:id/btn_login').click()
except:
    print
    traceback.format_exc()

    input('**** Press to quit..')
    driver.quit()

你可能感兴趣的:(python/appium实现app自动化登录)