appium

1. 连接

# coding=utf-8
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from time import sleep
desired_caps = {
    "platformName":"Android",
    "platformVersion": "5.1.1",
    "deviceName": "127.0.0.1:62025",
    "appPackage": "com.tal.kaoyan",
    "appActivity": "com.tal.kaoyan.ui.activity.SplashActivity",
    "noReset": False,
    "app": r"D:\BaiduYunDownload\kaoyan3.1.0.apk",  # 把安装包拖到cmd,
    "unicodeKeyboard": True,  # 识别中文
    "resetKeyboard": True,
    'automationName':'uiautomator2', # 抓取隐性元素
}

driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
driver.implicitly_wait(2)

 

2. 滑动:

def get_size():
    x=driver.get_window_size()['width']
    y=driver.get_window_size()['height']
    return x,y

def left_swip():
    rec = get_size()
    x1 = rec[0]*0.9
    x2 = rec[0]*0.5
    y = rec[1]*0.5
    driver.swipe(x1,y,x2,y,1000)

# 滑动
for i in range(0,2):
    left_swip()
    sleep(0.5)

 

3. 连续滑动

from appium.webdriver.common.touch_action import TouchAction

#连续滑动两次设置图案密码

for i in range(2):

    TouchAction(driver).press(x=243,y=381).wait(2000)\

        .move_to(x=455,y=390).wait(1000)\

        .move_to(x=643,y=584).wait(1000)\

        .move_to(x=647,y=784).wait(1000)\

        .release().perform()

1. 多点滑动(放大,缩小)

from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from appium.webdriver.common.multi_action import MultiAction

 

x = driver.get_window_size()['width']
y = driver.get_window_size()['height']

def swip_big():
    action1 = TouchAction(driver)
    action2 = TouchAction(driver)
    mul = MultiAction(driver)
    action1.press(x=x*0.4,y=y*0.4).wait(2000).move_to(x=x*0.2,y=y*0.2).wait(2000).release()
    action2.press(x=x*0.6,y=y*0.6).wait(2000).move_to(x=x*0.8,y=y*0.8).wait(2000).release()
    mul.add(action1,action2)
    mul.perform()
def swip_small():
    action1 = TouchAction(driver)
    action2 = TouchAction(driver)
    mul = MultiAction(driver)
    action1.press(x=x * 0.2, y=y * 0.2).wait(2000).move_to(x=x * 0.4, y=y * 0.4).wait(2000).release()
    action2.press(x=x * 0.8, y=y * 0.8).wait(2000).move_to(x=x * 0.6, y=y * 0.6).wait(2000).release()
    mul.add(action1, action2)
    mul.perform()
if __name__ == '__main__':
    for i in range(3):
        swip_big()

    for i in range(3):
        swip_small()

2. 抓取隐形元素

error_message = "用户名或密码错误,你还可以尝试3次"
message = '//*[@text=\'{}\']'.format(error_message)
toast_element = WebDriverWait(driver, 5).until(lambda x: x.find_element_by_xpath(message))

 

6.显性等待

toast_element = WebDriverWait(driver, 5).until(lambda x: x.find_element_by_xpath(message))

 

7.捕获异常

try:
pass
except NoSuchElementException as e:

Pass

else

8.截图

driver.save_screenshot('test.PNG') # 当前位置
driver.get_screenshot_as_file('../zd.PNG') # 指定位置

 

1. Yaml

Msg.yaml

name: dz
age: 22
spoce:
    name: 安生
    age: 12
children:
    - name: 詹阔
      age: 13
    - name: 展阔
      age: 10

 

Xx.py

file = open('msg.yaml','r',encoding='utf-8')
data = yaml.load(file)
print(data)

d = {'name':'zd'}
ls = [1,23,3]
eee = yaml.dump(d)
eee2 = yaml.dump(ls)
print(eee)
print(eee2)

2. 日志(1

import logging
logging.basicConfig(level=logging.INFO,filename='runlog.log',filemode='w',
                    format='%(asctime)s %(filename)s[line:%(lineno)d]%(levelname)s%(message)s')
logging.info('I love my mother')

3. 日志(2

log.conf 文件:

[loggers]
keys=root,infoLogger

[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler

[logger_infoLogger]
handlers=consoleHandler,fileHandler
qualname=infoLogger
propagate=0

[handlers]
keys=consoleHandler,fileHandler

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=form02
args=(sys.stdout,)

[handler_fileHandler]
class=FileHandler
level=INFO
formatter=form01
args=('runlog.log', 'a')

[formatters]
keys=form01,form02

[formatter_form01]
format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s

[formatter_form02]
format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s

 

Xx.py

import logging.config

CON_LOG='log.conf'
logging.config.fileConfig(CON_LOG)
logging=logging.getLogger()

logging.info('ok')

 

posted @ 2018-11-18 13:00  东方不败--Never  阅读(249)  评论(0)    收藏  举报