# user/python
# encoding:utf-8
from appium import webdriver
from time import sleep
from appium.webdriver.common.touch_action import TouchAction
# 打開微信
def open_WeCat(self):
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1.1'
desired_caps['deviceName'] = '127.0.0.1:62001'
desired_caps['appPackage'] = 'com.tencent.mm'
desired_caps['appActivity'] = 'com.tencent.mm.ui.LauncherUI'
desired_caps['automationName'] = 'Appium'
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
desired_caps['noReset'] = True
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
self.driver.implicitly_wait(15)
sleep(20)
return self.driver
# 後退
def back(self):
self.driver.keyevent(4)
# 退出
def over(self):
element = self.driver.quit()
return element
# 截圖
def get_screen(self, path):
self.driver.get_screenshot_as_file(path)
# 獲取界面大小
def get_size(self):
size = self.driver.get_window_size()
return size
# 向上滑動屏幕
def swipe_to_up(self):
window_size = self.driver.get_window_size()
width = window_size.get("width")
height = window_size.get("height")
self.driver.swipe(width / 2, height * 3 / 4, width / 2, height / 4, 500)
# 向下滑動屏幕
def swipe_to_down(self):
window_size = self.driver.get_window_size()
width = window_size.get("width")
height = window_size.get("height")
self.driver.swipe(width / 2, height / 4, width / 2, height * 3 / 4, 500)
# 向左滑動屏幕
def swipe_to_left(self):
window_size = self.driver.get_window_size()
width = window_size.get("width")
height = window_size.get("height")
self.driver.swipe(width / 4, height / 2, width * 3 / 4, height / 2, 500)
# 向右滑動屏幕
def swipe_to_right(self):
window_size = self.driver.get_window_size()
width = window_size.get("width")
height = window_size.get("height")
self.driver.swipe(width * 4 / 5, height / 2, width / 5, height / 2, 500)
# 長按元素
def long_press(self,type,loc):
if type == 'id':
element = self.driver.find_element_by_id(loc)
TouchAction(self.driver).long_press(element).perform()
elif type == 'xpath':
element = self.driver.find_element_by_xpath(loc)
TouchAction(self.driver).long_press(element).perform()
elif type == 'class_name':
element = self.driver.find_element_by_class_name(loc)
TouchAction(self.driver).long_press(element).perform()
elif type == 'text':
element = self.driver.file_detector_context(loc)
TouchAction(self.driver).long_press(element).perform()
# 點擊座標
def touch_tap(self, x, y, duration=50):
width = self.driver.get_window_size()['width']
height = self.driver.get_window_size()['height']
a = (float(x) / width) * width
x1 = int(a)
b = (float(y) / height) * height
y1 = int(b)
self.driver.tap([(x1,y1), (x1,y1)],duration)