#!/usr/bin/env python
# -*- coding: utf-8 -*-
from appium import webdriver
from selenium.common.exceptions import NoSuchElementException

import time

desired_caps = {}
desired_caps['platformName'] = 'android'
desired_caps['platformVersion'] = '6.0.1'
desired_caps['deviceName'] = '127.0.0.1:7555'
desired_caps["unicodeKeyboard"] = 'True'  #声明中文
desired_caps["resetKeyboard"] = 'True'  #声明中文,否则不支持中文
desired_caps['noReset'] = 'True' #执行时不初始化
desired_caps['appPackage'] = 'com.tencent.mobileqq'
desired_caps['appActivity'] = '.activity.SplashActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(5)
time.sleep(2)

#第一次登录、第二次登录有数据记录、第三次登录,有帐号数据但未登录

def login():
    driver.find_element_by_xpath("//android.widget.EditText[@text='QQ号/手机号/邮箱' and @content-desc='请输入QQ号码或手机或邮箱']").clear()
    driver.find_element_by_xpath("//android.widget.EditText[@text='QQ号/手机号/邮箱' and @content-desc='请输入QQ号码或手机或邮箱']").click()
    driver.find_element_by_xpath("//android.widget.EditText[@text='QQ号/手机号/邮箱' and @content-desc='请输入QQ号码或手机或邮箱']").send_keys("331089688")
    time.sleep(3)
    driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.tencent.mobileqq:id/password']").clear()
    driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.tencent.mobileqq:id/password']").click()
    driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.tencent.mobileqq:id/password']").send_keys("xiaowu123123")
    time.sleep(3)
    driver.find_element_by_xpath("//android.widget.Button[@resource-id='com.tencent.mobileqq:id/login']").click()
    time.sleep(2)

try:
    driver.find_element_by_xpath("//android.widget.Button[@resource-id='com.tencent.mobileqq:id/btn_register']")  #检测是否有这个控件
except NoSuchElementException:           #检测结果:无。有异常,执行语句
    login()
    time.sleep(3)
    print("自动登录成功")
else:                                                                   #检测结果:有。无异常,则执行该语句
    driver.find_element_by_xpath("//android.widget.Button[@resource-id='com.tencent.mobileqq:id/btn_login']").click()
    time.sleep(3)
    login()
    print("输入帐号密码成功")                    #2种方式,目前第三种带帐号密码还不知道如何写入

有 3 种情况:
1,第一次登录,需要点击登录,然后再输入帐号密码登录

2,登录过,不会出现新用户,但是要输入帐号密码

3,直接登录进入,不需要输入帐号密码

try except else
目前我只能满足 2 种情况,想不明白怎么区别这 3 种情况?求大神指点下。

要么满足 1 和 2 种情况,要么满足 2 和 3 的情况,要么满足 1 和 3 的情况。请问如何要满足以上 3 种情况。。。真心求教。。


↙↙↙阅读原文可查看相关链接,并与作者交流