from appium import webdriver
import datetime
import os
#模拟app,实现下棋,截图保存,apk地址https://github.com/Hesh233/java-demo/blob/master/Buttontest02/app/app-release.apk
def appinumTest():
#设置手机设备信息
desired_caps = {}
desired_caps['platformName']='Android' #系统平台
desired_caps['deviceName']='127.0.0.1:62001' #移动设备名称
desired_caps['platformVersion']='5.1.1' #系统版本
desired_caps['appPackage']='com.example.administrator.AndroidWZQ' #app包名
desired_caps['appActivity']='Main2Activity' #app活动的活动名称
desired_caps['app']=r'E:\git\java-demo\Buttontest02\app\app-release.apk' #应用程序的包
#desired_caps['noReset']='True' #不要停止应用程序,不要清除应用程序数据,也不要卸载apk
driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)
driver.implicitly_wait(2) # 等待2秒
driver.find_element_by_id('com.example.administrator.AndroidWZQ:id/btn1').click() #点击事件
#xpath有点长,有id尽量用id
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.ImageButton[1]').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.Button').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.support.v7.widget.LinearLayoutCompat/android.widget.FrameLayout/android.widget.ListView/android.widget.TextView[1]').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.ImageButton[2]').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.ImageButton[31]').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.ImageButton[3]').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.ImageButton[41]').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.ImageButton[4]').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.ImageButton[51]').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.ImageButton[5]').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.ImageButton[61]').click()
driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.ImageButton[6]').click()
takeScreenShot(driver)
#带日期截图函数
def takeScreenShot(driver,name = "ScreenShot"):
'''
method explain:获取当前屏幕的截图
parameter explain:【name】 截图的名称
Usage:
device.take_screenShot(u"个人主页") #实际截图保存的结果为:2019-01-13_17_10_58_ScreenShot.png
'''
day = datetime.datetime.now().strftime("%Y-%m-%d")
fq = "screenShots\\"+day
#fq =os.getcwd()[:-4] +'screenShots\\'+day 根据获取的路径,然后截取路径保存到自己想存放的目录下
tm = datetime.datetime.now().strftime("%Y-%m-%d_%H_%M_%S")
type = '.png'
filename = ""
if os.path.exists(fq):
filename = fq+"\\"+tm+"_"+name+type
print(filename+"exists")
else:
os.makedirs(fq)
filename = fq+"\\"+tm+"_"+name+type
print(filename+"else")
#实际截图api
driver.get_screenshot_as_file(filename)
if __name__=='__main__':
appinumTest()