import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage from selenium import webdriver from time import sleep import os # 全屏截图 def get_allure(): #一定要使用这个模式,不然截不了全页面,只能截到当前页面 # chromedriver的路径,下载谷歌对应版本chromedriver文件,放到谷歌浏览器路径中 chromedriver = r"C:\Google\Chrome\Application\chromedriver.exe" os.environ["webdriver.chrome.driver"] = chromedriver chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') # 启动浏览器 driver = webdriver.Chrome(options=chrome_options) # 控制浏览器写入并转到链接 driver.get("http://hello.html") print('截图开始') # 接下来是全屏的关键,用js获取页面的宽高,如果有其他需要用js的部分也可以用这个方法 width=driver.execute_script("return document.documentElement.scrollWidth") height=driver.execute_script("return document.documentElement.scrollHeight") print(width,height) # 将浏览器的宽高设置成刚刚获取的宽高 driver.set_window_size(width,height) sleep(10) # 截图并关掉浏览器 driver.get_screenshot_as_file(r'D:\baogao\testimage.png') print('截图结束') content = "'</p>' + '<p>发送报告:</p>'''f'<p><a href="http://hello.html/" >点击查看报告</a></p>' html_img = f'<p>{content}<br><img src="cid:image1"></br></p>' # html格式添加图片 #收件人邮箱地址 areceiver = "shoujian@qq.com" send_mail(areceiver, "邮件名称", html_img) def send_mail(receivers, title, html_img): # 发件人邮箱 asender = "fajian@qq.com" # 收件人邮箱 areceiver = receivers # 抄送人邮箱 acc = '' # 邮件主题 asubject = title # 发件人地址 from_addr = "fajian@qq.com" # 邮箱密码(授权码) password = "123" # 邮件设置 msg = MIMEMultipart() msg['Subject'] = asubject msg['to'] = areceiver msg['Cc'] = acc msg['from'] = "xingming" # 读取图片 fp = open(r"D:\tupian.png", 'rb') # 打开文件 msgImage = MIMEImage(fp.read()) # 读入 msgImage 中 fp.close() # 关闭文件 # 定义图片 ID,在 HTML 文本中引用 msgImage.add_header('Content-ID', '<image1>') msg.attach(msgImage) msg.attach(MIMEText(html_img, 'html', 'utf-8')) # 添加到邮件正文 # 设置邮箱服务器地址以及端口 smtp_server = "exmail.qq.com" # 开启发信服务,这里使用的是加密传输 server = smtplib.SMTP_SSL(server) server.connect(server, 456) # 登陆邮箱 server.login(from_addr, password) # 发送邮件 server.sendmail(from_addr, areceiver.split(',') + acc.split(','), msg.as_string()) # 断开服务器链接 server.quit() if __name__ == "__main__": get_allure()
使用谷歌浏览器自动打开项目中的html网页并截取网页全图发送邮件
于 2022-11-30 18:20:31 首次发布