Appium_python code(2)
来源:互联网 发布:lol凛冬之怒数据 编辑:程序博客网 时间:2024/05/21 06:39
# coding:utf8import loggingimport histsimilarimport tracebackimport timeimport osfrom selenium import webdriverfrom selenium.common.exceptions import NoSuchElementException, WebDriverExceptionlogging.basicConfig(filename='log.txt',level=logging.INFO)success = Truedesired_caps = dict()desired_caps['browserName'] = 'iOS'desired_caps['platform'] = 'Mac'desired_caps['version'] = '6.1'desired_caps['app'] = os.path.abspath('测试app的位置')#def is_alert_present(wd):# try:# wd.switch_to_alert().text# return True# except:# return Falsedef click(element): element.click() time.sleep(3) logging.info(str(c) + ' time click ' + wd.page_source) screenshot()def send_keys(element, keys): element.send_keys(keys) time.sleep(3) logging.info(str(c) + ' time click ' + wd.page_source) screenshot()def execute_script(script, args): wd.execute_script(script, args) time.sleep(3) screenshot()def mk_new_dir(): global path, base base = '截图存放的位置' if not os.path.isdir(base): path = base + '0/' os.mkdir(path) return path = base + str(len(os.listdir(base))) + '/'c = 0def screenshot(): global c, path if not os.path.isdir(path): os.mkdir(path) wd.get_screenshot_as_file(path + str(c) + '.png') c += 1def compare(): dirs = list() for dirname in os.listdir(base): if os.path.isdir(base + dirname): dirs.append((os.path.getmtime(base + dirname), dirname)) if len(dirs) < 3: return dirs.sort() new = dirs[len(dirs) - 1][1] previous = dirs[len(dirs) - 2][1] names = [(os.path.getmtime(base + new + '/' + filename), filename) for filename in os.listdir(base + new)] names.sort() for n in names: if n[1].startswith('.'): continue if os.path.exists(base + previous + '/' + n[1]): print n[1] + ' similarity : ' + str( int(histsimilar.calc_similar_by_path(base + new + '/' + n[1], base + previous + '/' + n[1]) * 100)) + '%'try: mk_new_dir() wd = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps) wd.implicitly_wait(5) try: button = wd.find_element_by_name('点击开启') while not button.is_displayed(): #screenshot() time.sleep(1) time.sleep(3) click(button) except WebDriverException, NoSuchElementException: logging.info('没有开机动画') click(wd.find_element_by_xpath("//window[1]/tableview[1]/cell[1]/button[1]")) click(wd.find_element_by_name(" 返回")) click(wd.find_element_by_xpath("//window[1]/tableview[1]/cell[1]/button[2]")) click(wd.find_element_by_name(" 返回")) click(wd.find_element_by_name("游记")) click(wd.find_element_by_name("qunar login")) send_keys(wd.find_element_by_xpath("//window[1]/image[2]/textfield[1]"), "lvtu@yopmail.com") send_keys(wd.find_element_by_xpath("//window[1]/image[3]/secure[1]"), "lvtu@yopmail.com") click(wd.find_element_by_name("登录")) try: click(wd.find_element_by_xpath("//window[1]/button[3]")) except: logging.info('没上传提示') click(wd.find_element_by_xpath("//window[1]/tableview[1]/cell[1]/text[1]")) click(wd.find_element_by_xpath("//window[1]/tableview[1]/cell[1]")) execute_script("mobile: swipe", {"touchCount": 1, "startX": 157, "startY": 529, "endX": 156, "endY": 102, "duration": 0.5}) click(wd.find_element_by_name(" 返回")) click(wd.find_element_by_name(" 返回")) click(wd.find_element_by_xpath("//window[1]/button[1]"))except: traceback.print_exc() success = Falsefinally: if success: #raise Exception("Test failed.") compare() wd.quit()
计算图片相似度部分
# -*- coding: utf-8 -*-import Imagedef make_regalur_image(img, size=(256, 256)): return img.resize(size).convert('RGB')def split_image(img, part_size=(64, 64)): w, h = img.size pw, ph = part_size assert w % pw == h % ph == 0 return [img.crop((i, j, i + pw, j + ph)).copy() \ for i in xrange(0, w, pw) \ for j in xrange(0, h, ph)]def hist_similar(lh, rh): assert len(lh) == len(rh) return sum(1 - (0 if l == r else float(abs(l - r)) / max(l, r)) for l, r in zip(lh, rh)) / len(lh)def calc_similar(li, ri):# return hist_similar(li.histogram(), ri.histogram()) return sum(hist_similar(l.histogram(), r.histogram()) for l, r in zip(split_image(li), split_image(ri))) / 16.0def calc_similar_by_path(lf, rf): li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf)) return calc_similar(li, ri)def make_doc_data(lf, rf): li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf)) li.save(lf + '_regalur.png') ri.save(rf + '_regalur.png') fd = open('stat.csv', 'w') fd.write('\n'.join(l + ',' + r for l, r in zip(map(str, li.histogram()), map(str, ri.histogram())))) # print >>fd, '\n' # fd.write(','.join(map(str, ri.histogram()))) fd.close() import ImageDraw li = li.convert('RGB') draw = ImageDraw.Draw(li) for i in xrange(0, 256, 64): draw.line((0, i, 256, i), fill='#ff0000') draw.line((i, 0, i, 256), fill='#ff0000') li.save(lf + '_lines.png')
0 0
- Appium_python code(2)
- Appium_python code(2)
- Appium_python code(1)
- Appium_python code(1)
- Events Sample Code(2)
- Code Complete 2nd
- code complete(2)
- TDI code 2
- OBD 2 code scanner
- OBD 2 code scanner
- USACO Solution Code(2)
- T-CODE(2)
- code review手记2
- Node(2) First Code
- piece of code(2)
- CODE 2: Palindrome Partitioning
- 计算机图形学-Code 2
- Code资格赛2
- scanf 输入双精度浮点数
- 制作网页开始时候需要认识和了解知识
- javascript定义类或对象
- spring bean配置文件详解
- iOS开发之多线程并发编程
- Appium_python code(2)
- 理解java的传值方式
- android4.2 Launcher2界面两边的渐变的去除方法
- cocos2dx通过用eclipse移植android时出现 error: undefined reference to "XXX类:XX()"
- 林老师最后一次大作业:Project 10 – RTSP Windows Client: RFC 2326
- linux下创建oracle用户表空间1
- Ubuntu设置环境变量并立即生效
- C++对文本的操作
- Java 7如何操纵文件属性