案例:巡检自动化=selenium+截图+接口

这篇具有很好参考价值的文章主要介绍了案例:巡检自动化=selenium+截图+接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

巡检自动化

一、应用自动化

网页应用方面

分为三步:第一步实现网页自动化打开,登录到需巡检的界面,第二步通过截图,保存巡检时状态图,第三步通过接口推送至手机app如企业微信,钉钉等。

网页自动化
准备

第一:selenium环境部署和定位学习:https://blog.csdn.net/qq_54219272/article/details/123310772
第二:selenium使用:https://blog.csdn.net/qq_54219272/article/details/123338773
第三:快速下载vscode:
https://blog.csdn.net/thlchina/article/details/113940283
补充:
Microsoft Edge浏览器驱动安装:打开文件所在位置,可以直接看到版本,再到https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver下载对应驱动(接近版本号即可)

打开网页

需要提前完成两步:
第一步:完成python、selenium环境部署
第二步:完成浏览器驱动安装
详见:https://blog.csdn.net/qq_54219272/article/details/123310772

# 1、导包/提供python的库
from time import sleep
from selenium import webdriver

# 2、实例化浏览器对象:类名()
driver = webdriver.Chrome()

# 3、打开网址(此处可以替换你要巡检的网页)
driver.get('https://www.bilibili.com/')

# 4、操作命令插入到这里

# 5、时间轴看效果,等待3秒
sleep(3)

# 6、关闭页面
driver.quit()

截图

使用方法:

driver.get_screenshot_as_file(imgepath)
#参数:
# imagepath:为图片要保存的目录地址及文件名称
#截图方法,建议使用png格式 , ./为当前路径,  ../为上一级路径,如('./info.png')

加入到代码中

# 1、导包/提供python的库
from time import sleep
from selenium import webdriver

# 2、实例化浏览器对象:类名()
driver = webdriver.Chrome()

# 3、打开网址(此处可以替换你要巡检的网页)
driver.get('https://www.bilibili.com/')

# 4、操作命令插入到这里
# 4.1、截图
driver.get_screenshot_as_file('./a.png')
# 5、时间轴看效果
sleep(3)

# 6、关闭页面
driver.quit()

接口推送

企业微信接口文档

图片

案例:巡检自动化=selenium+截图+接口

import requests
import base64
import hashlib

# 图片base64码
with open("./a.png", "rb") as f:
    base64_data = base64.b64encode(f.read()).decode()
# base64.b64decode(base64data)
print(base64_data)

# 图片的md5值
file = open("./a.png", "rb")
md = hashlib.md5()
md.update(file.read())
res1 = md.hexdigest()
print(res1)

# 企业微信机器人发送消息
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=f6e7fcfd-ef6c-4145-88ee-3d2eeb3ccXXX"
headers = {"Content-Type": "text/plain"}
data = {
    "msgtype": "image",
    "image": {
        "base64": base64_data,
        "md5": res1
    }
}
r = requests.post(url, headers=headers, json=data)
print(r.text)

插曲:出现如下报错【TypeError:Object of type bytes is not JSON】
案例:巡检自动化=selenium+截图+接口
解决方法如下:添加了.decode()
案例:巡检自动化=selenium+截图+接口

借鉴的文章:https://blog.csdn.net/xyl342300/article/details/109954038,不要轻易运行,不然很容易尴尬

插曲2:
案例:巡检自动化=selenium+截图+接口
谷歌浏览器的驱动有问题,重装新版的谷歌浏览器就可以解决,下载对应的驱动

插曲3:
案例:巡检自动化=selenium+截图+接口
将谷歌浏览器的驱动放到python的目录下解决

文本

通过企业微信接口文档-发送文本写出data={ }部分的信息

import requests

# 10、企业微信机器人发送消息:文本消息
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1bd9d632-1f3b-445d-98e8-429a1d7415ca"
headers = {"Content-Type": "text/plain"}   
data = {
    "msgtype": "text",
    "text": {
        "content" : "监控平台界面:正常标准为无异常告警"
    }
}
r = requests.post(url, headers=headers)

print(r.text)

存在报错
案例:巡检自动化=selenium+截图+接口
查询后得知

import requests
# 10、企业微信机器人发送消息:文本消息
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1bd9d632-1f3b-445d-98e8-429a1d7415xx"
headers = {"Content-Type": "text/plain"}   
data = {
    "msgtype": "text",
    "text": {
        "content" : "监控平台界面:正常标准为无异常告警"
    }
}
r = requests.post(url,headers=headers,json=data,verify=False)#企业微信群机器人的消息虽然是“text”类型的,但是post发送过去的头部是“application/json”,是json格式的
print(r.text)

成功发送
案例:巡检自动化=selenium+截图+接口

启动脚本

一、bat写法

@C:\Users\18826\AppData\Local\Programs\Python\Python38\python.exe C:\Users\18826\Desktop\patrol\renwu.py %*

上述路径是自身py所在的文件夹决定的,如下图
案例:巡检自动化=selenium+截图+接口

二、window自带的定时任务,需要注意以下更改点
案例:巡检自动化=selenium+截图+接口

遇到问题
  1. 执行后报错
    案例:巡检自动化=selenium+截图+接口
    解决方法
    案例:巡检自动化=selenium+截图+接口

以上满足常规巡检


以下是对维格表尝试登录,但是失败的案例

网页操作

若需对网页进行操作,需学习:
1、利用元素定位进行网页操作
2、了解浏览器、键盘、鼠标操作
详见:https://developer.work.weixin.qq.com/tutorial/detail/54

常用命令如下:

driver.maximize_window()  # 最大化浏览器

加入到代码中

# 1、导包/提供python的库
from time import sleep
from selenium import webdriver

# 2、实例化浏览器对象:类名()
driver = webdriver.Chrome()

# 3、打开网址(此处可以替换你要巡检的网页)
driver.get('https://www.bilibili.com/')

# 4、操作命令插入到这里
# 4.1、截图
driver.maximize_window()  # 最大化浏览器

# 5、时间轴看效果
sleep(3)

# 6、关闭页面
driver.quit()

账号密码

此处引入登录维格表,截图发群里通知人执行工作

插曲1:
案例:巡检自动化=selenium+截图+接口
4.4.3版本无法使用_by_命令,改成4.1.0

pip uninstall selenim
pip install selenim==4.1.0

案例:巡检自动化=selenium+截图+接口
插曲2:无法定位元素的报错
案例:巡检自动化=selenium+截图+接口
是由于账号密码界面需要切换,引入鼠标点击

# 定位目标
ele = driver.find_element_by_xpath('//*[@id="VIKA_LOGIN"]/div[1]/div/button/span')
# 实例化 鼠标对象
action = ActionChains(driver)
# 鼠标单击
action.click(ele)
# 鼠标执行操作!!!不执行没效果
action.perform()

顺利切换到如下界面
案例:巡检自动化=selenium+截图+接口
再通过元素定位法
案例:巡检自动化=selenium+截图+接口

# 5.4、输入账号密码
ele = driver.find_element_by_xpath('//*[@id="VIKA_LOGIN_PHONE_INPUT"]')
ele.send_keys('18826227807')
ele = driver.find_element_by_xpath('//*[@id="VIKA_LOGIN_PASSWORD_INPUT"]')
ele.send_keys('Stqer686')

最后,点击确认
案例:巡检自动化=selenium+截图+接口

# 5.5、点击
# 定位目标
ele = driver.find_element_by_xpath('//*[@id="VIKA_LOGIN"]/div[1]/div/button/span')
# 实例化 鼠标对象
action = ActionChains(driver)
# 鼠标单击
action.click(ele)
# 鼠标执行操作!!!不执行没效果
action.perform()

但是,最后维格表有防范机制,点击确认后,还是不算登录成功,哭哭文章来源地址https://www.toymoban.com/news/detail-474872.html

整体代码

巡检

# 1、导包/提供python的库
from time import sleep
from selenium import webdriver

# 2、实例化浏览器对象:类名()
driver = webdriver.Chrome()

# 3、打开网址(此处可以替换你要巡检的网页)
driver.get('http://172.16.1.33:3000/d/WojOgXTmk/00-gao-jing-zhong-xin?orgId=1&refresh=5s')

# 4、时间轴看效果
sleep(6)

# 5、操作命令插入到这里
driver.get_screenshot_as_file('./a.png')  #截图
driver.maximize_window()  # 最大化浏览器


# 6、关闭页面
driver.quit()

import requests
import base64
import hashlib

# 7、图片base64码:提供给企业微信发送图片信息所需
with open("./a.png", "rb") as f:
    base64_data = base64.b64encode(f.read()).decode()
# base64.b64decode(base64data)
print(base64_data)

# 8、图片的md5值
file = open("./a.png", "rb")
md = hashlib.md5()
md.update(file.read())
res1 = md.hexdigest()
print(res1)

# 9、企业微信机器人发送消息:提供给企业微信发送图片信息所需
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1bd9d632-1f3b-445d-98e8-429a1d7415xx"
headers = {"Content-Type": "text/plain"}
data = {
    "msgtype": "image",
    "image": {
        "base64": base64_data,
        "md5": res1
    }
}
r = requests.post(url, headers=headers, json=data)
print(r.text)



维格表

# 1、导包/提供python的库
from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains

# 2、实例化浏览器对象:类名()
driver = webdriver.Chrome()

# 3、打开网址(此处可以替换你要巡检的网页)
driver.get('https://vika.cn/workbench/mirPTLa3fERa5Vt3Jt/dstyWW2rd6RgoKBxml/viwPVtNmkrHSC')

# 4、时间轴看效果
sleep(5)

# 5、操作命令插入到这里
# 5.1、最大化
driver.maximize_window()  # 最大化浏览器
# 5.2、截图
driver.get_screenshot_as_file('./a.png') 
# 5.3、鼠标单击切换到账号密码登录界面
# 5.3.1、点击“手机/邮件登录”按钮
# 定位目标
ele = driver.find_element_by_xpath('//*[@id="VIKA_LOGIN"]/div[1]/div/button/span')
# 实例化 鼠标对象
action = ActionChains(driver)
# 鼠标单击
action.click(ele)
# 鼠标执行操作!!!不执行没效果
action.perform()
# 5.3.2、点击“密码登录”按钮
# 定位目标
ele = driver.find_element_by_xpath('//*[@id="VIKA_CHANGE_MODE_BTN"]/span')
# 实例化 鼠标对象
action = ActionChains(driver)
# 鼠标单击
action.click(ele)
# 鼠标执行操作!!!不执行没效果
action.perform()
# 5.4、输入账号密码
ele = driver.find_element_by_xpath('//*[@id="VIKA_LOGIN_PHONE_INPUT"]')
ele.send_keys('18826227807')
ele = driver.find_element_by_xpath('//*[@id="VIKA_LOGIN_PASSWORD_INPUT"]')
ele.send_keys('Stqer686')
# 5.5、点击“确认”按钮
# 定位目标
ele = driver.find_element_by_xpath('//*[@id="VIKA_LOGIN"]/div[1]/div/button/span')
# 实例化 鼠标对象
action = ActionChains(driver)
# 鼠标单击
action.click(ele)
# 鼠标执行操作!!!不执行没效果
action.perform()
# 6、时间轴看效果
sleep(20)


# 7、关闭页面
driver.quit()

import requests
import base64
import hashlib

# 8、图片base64码:提供给企业微信发送图片信息所需
with open("./a.png", "rb") as f:
    base64_data = base64.b64encode(f.read()).decode()
# base64.b64decode(base64data)
print(base64_data)

# 9、图片的md5值
file = open("./a.png", "rb")
md = hashlib.md5()
md.update(file.read())
res1 = md.hexdigest()
print(res1)

# 10、企业微信机器人发送消息:提供给企业微信发送图片信息所需
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1bd9d632-1f3b-445d-98e8-429a1d7415ca"
headers = {"Content-Type": "text/plain"}
data = {
    "msgtype": "image",
    "image": {
        "base64": base64_data,
        "md5": res1
    }
}
r = requests.post(url, headers=headers, json=data)
print(r.text)


到了这里,关于案例:巡检自动化=selenium+截图+接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 智能边缘自动化:HDMI接口钡铼ARM工业电脑实践案例

    一款具备HDMI接口的高性能ARM工业计算机应运而生,为实现在工业4.0时代的关键数据实时处理与可视化管理提供了强有力的硬件支撑。这款计算机依托其独特的边缘计算能力,完美解决了工业环境中大规模数据传输至云端的高延迟问题,成功实现了OT(运营技术)与IT(信息技

    2024年04月14日
    浏览(40)
  • shell脚本——服务器巡检(自动化运维)

     目的   自动 获取集群内 多个主机 的内存、磁盘、cpu等信息 生成日志  准备    VMware虚拟主机IP在同一个网段(互相能ping通)             虚拟主机都有公钥免登录            修改主机IP  vi/etc/sysconfig/netwoek-scripts/ifcfg-ens160            设置主机名 hostnamectl set-ho

    2024年02月15日
    浏览(52)
  • 用自动化工具进行网络巡检------AINA Lyzer

    如今,随着企业信息化建设步伐不断加快,各大公司旗下网站、硬件设备等资产快速增长,内容十分丰富。但同时,在面对海量需要日常检查的信息和设备时,巡检工作的压力也与日俱增。 人工巡检操作繁杂、费时费力,且依赖于巡检人员工作经验和水平,难免会出现遗漏和

    2024年02月12日
    浏览(30)
  • 自动化测试中的失败截图和存log

    如果我们在执行自动化测试的时候,希望能在失败的时候保存现场,方便事后分析。 对于UI自动化,我们希望截图在测试报告中。 对于api自动化,我们希望截取出错的log在测试报告中。 我开始自己蛮干,写了两个出错截图的方法。 出错截图,我写了一个装饰器 似乎能达到我

    2024年02月21日
    浏览(37)
  • 细节有惊喜!详解Web自动化框架UI自动截图与画面回放实现!

    目录  前言: Web自动化测试框架基本结构及原理 UI自动截图实现方法 基于Selenium截图实现UI自动截图的过程如下: 基于Selenium截图的代码实现如下: 基于爬虫截图实现UI自动截图的流程如下: 基于爬虫截图的代码实现如下:

    2024年02月09日
    浏览(61)
  • web自动化测试(java+seleium)元素定位,全屏截图

    示例 根据元素的id属性来定位元素 根据元素的name属性来定位元素,但是注意name的属性值在当前文档中可以不是唯一的 通过class定位 通过tag进行定位,tag定位比较模糊,多用于标题等特殊标签 定位超链接文本(文本值) 模糊的link_text定位 能够实现路径定位(绝对路径,相对路径

    2024年02月08日
    浏览(46)
  • 自动化测试之web自动化(Selenium)

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! yycnblog 自动化测试概念:让程序代替人为去验证程序功能的过程,本

    2024年03月15日
    浏览(70)
  • selenium 自动化测试—如何搭建自动化测试环境?

    🍅 视频学习: 文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 最近也有很多人私下问我,selenium学习难吗,基础入门的学习内容很多是3以前的版本资料,对于有基础的人来说,3到4的差别虽然有,但是不足以影响自己,

    2024年02月19日
    浏览(94)
  • Selenium自动化测试实战之自动化测试基础

    自动化测试概念 是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程。 自动化只是测试方式,跟测试阶段无关。 可以把任何测试工作写一个程序自动化实现都可以称为自动化测试。 selenium自动化测试: 2023最新的Selenium自动化测试实战,没有比

    2024年02月13日
    浏览(65)
  • JavaScript+Selenium自动化测试_selenium和js能一起做自动化测试

    var webdriver = require(‘selenium-webdriver’), By = webdriver.By, until = webdriver.until; var driver = new webdriver.Builder() .forBrowser(‘chrome’) .build(); driver.get(‘https://www.baidu.com’); driver.findElement(By.id(‘kw’)).sendKeys(‘webdriver’); driver.findElement(By.id(‘su’)).click(); driver.wait(until.titleIs(‘webdriver_百度

    2024年04月25日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包