接到一个需求,要将grafana里面的报表自动截图发送质量周报,由于grafana自带的图片转化,中文显示不出来,而且及其不好用,于是,就想到用selenium自动控制浏览器去截图,并将图片自动写入到html文件中,用的是python
环境准备
1.python3
2.selenium库(pip3 install selenium)
Demo
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
import datetime
import os
def login(drive,username,passwd):
input = drive.find_element_by_xpath("//input[@name='username']")
input.send_keys(username)
input = drive.find_element_by_xpath("//input[@name='password']")
input.send_keys(passwd)
input.send_keys(Keys.ENTER)
drive.implicitly_wait(300)
if __name__ == "__main__":
username="xxx" //账号
passwd="xxx" //密码
driver = webdriver.Chrome()
driver.maximize_window()
# driver.viewportSize={'width':1024,'height':800}
day = datetime.date.today().strftime('%y%m') + '01'
url = "xxx" //你的grafana地址
driver.get(url)
login(driver, username, passwd)
ele = driver.find_element_by_id('panel-51')
ActionChains(driver).move_to_element(ele).perform()
ele.screenshot('png/bug历史问题的解决时间.png')
driver.close()