#!/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 种情况。。。真心求教。。