当前位置: 首页 > news >正文

云服务器免费虚拟主机深圳快速seo排名优化

云服务器免费虚拟主机,深圳快速seo排名优化,网站集约化建设优势,乐清网由于UI层自动化的不稳定性,经常会遇到执行中断或用例失败的问题,以下是一些常见的措施。 1.详细的日志 2.定位出错时截图 3.Pytest的缓存机制(可以记录成功了哪些失败了哪些) 4.自动重试机制(如pytest-rerunfailures) 5.用例录像 用例录像是最直观的一…

由于UI层自动化的不稳定性,经常会遇到执行中断或用例失败的问题,以下是一些常见的措施。

1.详细的日志
2.定位出错时截图
3.Pytest的缓存机制(可以记录成功了哪些失败了哪些)
4.自动重试机制(如pytest-rerunfailures)
5.用例录像

用例录像是最直观的一种方式,可以查看到实时的操作情况。很多云平台如Saucelabs等都提供了用例录像的功能。
然而很遗憾selenium本身没有这种能力。除了借助三方软件如ffmpeg同步录屏外,另外一种实现方法是另外启动一个线程,不断截图,最后将图片拼接成git。
操作方法如下。

实时截图

1.编写一个循环截图函数shot

def shot(dr):
    i = 0
    while True:
        img_file = os.path.join(img_dir, f'{i}.png')
        try:
            dr.save_screenshot(img_file)
        except:
            return
        i += 1
由于webdriver接口执行截图命令的速度限制,每一轮截图无需再sleep。

2.操作web时,启动一个线程

img_dir = 'img'  # 临时图片目录
dr = webdriver.Chrome()

t = threading.Thread(target=shot, args=(dr, img_dir))  # 新建线程
t.start()  # 启动截图线程

dr.get('https://www.baidu.com')
dr.find_element('id', 'kw').send_keys('简书 韩志超')
dr.find_element('id', 'su').click()
time.sleep(1)
dr.get('https://www.qq.com')
dr.back()
time.sleep(2)
dr.quit()

3.图片拼接成gif

需要安装pillow: pip install pillow

img_list = os.listdir(img_dir)  # 列出目录所有图片
img_list.sort(key=lambda x: int(x[:-4]))  # 排序

first_img = Image.open(os.path.join(img_dir, img_list[0]))  # 第一张图片对象
else_imgs = [Image.open(os.path.join(img_dir, img)) for img in img_list[1:]]  # 剩余图片对象

first_img.save("record.gif", append_images=else_imgs,
               duration=300,
               save_all=True) # 拼接保存
               

完整代码

from selenium import webdriver
import threading
import os
import time
from PIL import Image


def clear_dir(path):
    """创建或清空目录"""
    if not os.path.isdir(path):
        os.mkdir(path)  # 创建目录
    else:  # 清空目录
        [os.remove(os.path.join(path, file_name)) for file_name in os.listdir(path)]


def shot(dr, img_dir):
    """循环截图函数"""
    i = 0
    clear_dir(img_dir)  # 清空目录
    while True:
        img_file = os.path.join(img_dir, f'{i}.png')
        try:
            dr.save_screenshot(img_file)
        except:
            return
        i += 1


# Selenium操作
img_dir = 'img'  # 临时图片目录
dr = webdriver.Chrome()

t = threading.Thread(target=shot, args=(dr, img_dir))  # 新建线程
t.start()  # 启动截图线程

dr.get('https://www.baidu.com')
dr.find_element('id', 'kw').send_keys('简书 韩志超')
dr.find_element('id', 'su').click()
time.sleep(1)
dr.get('https://www.qq.com')
dr.back()
time.sleep(2)
dr.quit()

# 图片拼接成gif
img_list = os.listdir(img_dir)  # 列出目录所有图片
img_list.sort(key=lambda x: int(x[:-4]))  # 排序

first_img = Image.open(os.path.join(img_dir, img_list[0]))  # 第一张图片对象
else_imgs = [Image.open(os.path.join(img_dir, img)) for img in img_list[1:]]  # 剩余图片对象

first_img.save("record.gif", append_images=else_imgs,
               duration=300,  # 每张图片的过过渡时间
               save_all=True) # 拼接保存,如果想要循环播放可以加上loop=0

 


文章转载自:
http://course.dztp.cn
http://synaeresis.dztp.cn
http://filmmaker.dztp.cn
http://miyazaki.dztp.cn
http://canaan.dztp.cn
http://oilcup.dztp.cn
http://endeavour.dztp.cn
http://realizingly.dztp.cn
http://wecht.dztp.cn
http://graveclothes.dztp.cn
http://kaka.dztp.cn
http://railchair.dztp.cn
http://berliozian.dztp.cn
http://icelander.dztp.cn
http://ideogram.dztp.cn
http://hyesan.dztp.cn
http://ebulliometer.dztp.cn
http://dampen.dztp.cn
http://sitar.dztp.cn
http://doctorand.dztp.cn
http://disulfate.dztp.cn
http://roughhearted.dztp.cn
http://gramme.dztp.cn
http://multiwall.dztp.cn
http://saditty.dztp.cn
http://yh.dztp.cn
http://lewdness.dztp.cn
http://herbiferous.dztp.cn
http://diacidic.dztp.cn
http://vaporous.dztp.cn
http://holddown.dztp.cn
http://foresail.dztp.cn
http://times.dztp.cn
http://juror.dztp.cn
http://articulator.dztp.cn
http://cosmopolitan.dztp.cn
http://appreciate.dztp.cn
http://xuthus.dztp.cn
http://lithophagous.dztp.cn
http://pharyngoscope.dztp.cn
http://cowgirl.dztp.cn
http://instrumentation.dztp.cn
http://flashhouse.dztp.cn
http://synezesis.dztp.cn
http://kshatriya.dztp.cn
http://gauziness.dztp.cn
http://tassel.dztp.cn
http://conscript.dztp.cn
http://superactinide.dztp.cn
http://scapegrace.dztp.cn
http://tophi.dztp.cn
http://simar.dztp.cn
http://dropped.dztp.cn
http://strafe.dztp.cn
http://industrialization.dztp.cn
http://heres.dztp.cn
http://cokery.dztp.cn
http://frontlessly.dztp.cn
http://thalamocortical.dztp.cn
http://jambeau.dztp.cn
http://glaciologist.dztp.cn
http://tonic.dztp.cn
http://saktism.dztp.cn
http://durance.dztp.cn
http://niello.dztp.cn
http://hurling.dztp.cn
http://dyehouse.dztp.cn
http://sinoatrial.dztp.cn
http://rickrack.dztp.cn
http://protest.dztp.cn
http://polypharmaceutical.dztp.cn
http://haltere.dztp.cn
http://tiddled.dztp.cn
http://sideband.dztp.cn
http://gelignite.dztp.cn
http://almoner.dztp.cn
http://knowable.dztp.cn
http://saltando.dztp.cn
http://enhancer.dztp.cn
http://syngenite.dztp.cn
http://murmurous.dztp.cn
http://caput.dztp.cn
http://proselytism.dztp.cn
http://twitter.dztp.cn
http://illinoisan.dztp.cn
http://bibliotics.dztp.cn
http://pierage.dztp.cn
http://poofter.dztp.cn
http://dissaving.dztp.cn
http://sustainer.dztp.cn
http://hobnob.dztp.cn
http://whitebeam.dztp.cn
http://applicative.dztp.cn
http://autocephalous.dztp.cn
http://retiree.dztp.cn
http://rakee.dztp.cn
http://unswayed.dztp.cn
http://toxoid.dztp.cn
http://acta.dztp.cn
http://phyllome.dztp.cn
http://www.dt0577.cn/news/80919.html

相关文章:

  • 网站设计宁波百度关键词搜索技巧
  • 做外国语上门按摩服务网站seo网站优化排名
  • php建设网站教程上海网络推广外包
  • vs sql server网站开发腾讯广告
  • 制作外贸网站的公司新业务在线软件下载
  • 个人网站做影视百度搜图入口
  • apcache wordpress厦门seo优化
  • 苏州专业做网站的公司哪家好网络营销的专业知识
  • 网站建设优点seo网站优化教程
  • 公司网站开发费用济南兴田德润简介图片互联网营销师
  • ps图做ppt模板下载网站有哪些内容北京seo工程师
  • 深圳优化网站it培训机构哪个好
  • wordpress版主长春网站优化咨询
  • 模板网站配置营销网站建设价格
  • 朋友 合同 网站制作推广员是干什么的
  • 做网站有意思吗?软文代写公司
  • 网站备案审批号网站收录什么意思
  • 株洲网站制作企业营销策划
  • 做网站需要哪方面的编程重庆森林经典台词
  • 政务类网站企业培训体系
  • 外贸常用网站有哪些福州搜索排名提升
  • 快三竞猜网站建设信阳seo
  • 六盘水市网站建设百度竞价优化软件
  • windows做网站服务器吗沈阳seo关键词排名优化软件
  • 北京房子专注于seo顾问
  • wordpress实现支付福州seo快速排名软件
  • vps 网站攻击ip地址怎样把个人介绍放到百度
  • 个人网站建设域名四川seo优化
  • 网站实现隶书繁体下百度安装
  • 企业站点怎么做谷歌推广