如何安装PYQT,可以查看我的上一篇文章:http://www.cnblogs.com/liqiu/p/3361948.html

然后运行下面的带有JS程序的Python脚本即可:

#-*- coding:utf-8 -*-
import sys
import os.path
import time
from PyQt4 import QtGui,QtCore,QtWebKit class PageShotter(QtGui.QWidget):
def __init__(self,url,parent=None):
QtGui.QWidget.__init__(self,parent)
self.url = url
def shot(self):
webView = QtWebKit.QWebView(self)
self.webPage = webView.page()
webView.load(QtCore.QUrl(self.url))
self.connect(webView,QtCore.SIGNAL("loadFinished(bool)"),self.savePage)
def savePage(self,finished):
#print finished
if finished:
print u"开始截图!"
self.webPage.mainFrame().evaluateJavaScript("document.getElementById('kw').value='liqiu';");
size = self.webPage.mainFrame().contentsSize()
print u"页面宽:%d,页面高:%d" % (size.width(),size.height())
self.resize(size.width(),size.height())
self.webPage.setViewportSize(QtCore.QSize(size.width()+16,size.height()))
img = QtGui.QImage(size, QtGui.QImage.Format_ARGB32)
painter = QtGui.QPainter(img)
self.webPage.mainFrame().render(painter)
painter.end()
fileName= "shot.png";
if img.save(fileName):
filePath = os.path.join(os.path.dirname(__file__), fileName)
print u"截图完毕:%s" % filePath
else:
print u"截图失败";
else:
print u"网页加载失败!"
self.close()
if __name__=="__main__":
app = QtGui.QApplication(sys.argv)
shotter = PageShotter("http://www.baidu.com/")
shotter.shot()
sys.exit(app.exec_())

这里面可能需要使用JS,修改页面的内容,上面红色的部分已经标出。

结果:

PYQT操作JS并且截图事例的更多相关文章

  1. html2canvas.js插件截图空白问题

    发现使用 html2canvas.js插件截图保存在前端很方便.学习过程中预计问题. 截图出现空白和截图不全. 问题原因: html2canvas.js插件截图是基于body标签的,如果body存在滚 ...

  2. Node.js & 页面截图 & 生成画报

    Node.js & 页面截图 & 生成画报 https://zzk.cnblogs.com/my/s/blogpost-p?Keywords=headless solution 使用 ...

  3. html2canvas.js网页截图功能

    需求:将网页生成图片,用户自行长按图片进行保存图片,再分享朋友圈.其中,都可识别图中的二维码.(二维码过小会识别不出) 首先,先来科普一下微信网页识别二维码原理:截屏识别,当客户端发现用户在网页的im ...

  4. VBS一键配置VOIP脚本(其中包括VBS操作JS网页中的按钮事件--直接执行确认按钮中的脚本代码)

    Dim ws,fso,IESet IE = WScript.createobject("InternetExplorer.Application")Set ws = WScript ...

  5. Day046--JavaScript-- DOM操作, js中的面向对象, 定时

    一. DOM的操作(创建,追加,删除) parentNode 获取父级标签 nextElementSibling 获取下一个兄弟节点 children 获取所有的子标签 <!DOCTYPEhtm ...

  6. DOM操作 JS事件 节点增删改查

    --------------------------习惯是社会的巨大的飞轮和最可贵的维护者.——威·詹姆斯 day 49 [value属性操作] <!DOCTYPE html><ht ...

  7. Python + Selenium操作一:截图详解

    在做测试的时候,空口无凭都是白掐,特别是自动化测试的时候,更需要图片来佐证自己发现的问题 话不多说,直接进入主题,技术就是这么直白 Webdriver自带截图功能,get_screenshot_as_ ...

  8. python操作浏览器及截图小结

    近期做网页自动化用到内容小结 1.打开浏览器1)打开默认配置的浏览器from selenium import webdriverdriver = webdriver.Firefox()"&q ...

  9. 一步一步搭建客服系统 (3) js 实现“截图粘贴”及“生成网页缩略图”

    最近在做一个客服系统的demo,在聊天过程中,我们经常要发一些图片,而且需要用其它工具截图后,直接在聊天窗口里粘贴,就可以发送:另外用户输入一个网址后,把这个网址先转到可以直接点击的link,并马上显 ...

随机推荐

  1. 【docker】docker部署spring boot服务 选择配置文件启动

    默认启动命令: docker run --name swapping -itd --net=host -v /etc/localtime:/etc/localtime:ro -v /etc/timez ...

  2. .NET:不要使用扩展方法扩展Object对象。

    C#的扩展方法算是一种Minin(掺入)机制,掺入方法有其合理的使用场景,这里说说一种不好的使用场景(个人意见):不要使用扩展方法扩展Object对象.扩展Object会对所有类型的示例有侵入,特别是 ...

  3. python测试开发django-33.admin后台一对一关系OneToOneField

    前言 假如有一张表(Card)记录用户的卡号信息和用户名,现在需要新增一个小功能,记录用户的手机号,邮箱和住址等更多信息. 为了不影响原来的表设计,可以新增一张表(CardDetail),专门记录用户 ...

  4. Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out

    问题: java连接不上redis. 异常信息: Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.ne ...

  5. 黑帆第四季/全集Black Sails迅雷下载

    本季看点:<黑帆>本剧是著名海盗故事<金银岛>(Treasure Island)的前传.Starz宣布<Black Sails>已提前获得第四季续订,第四季10集和 ...

  6. 格林第一季/全集Grimm迅雷下载

    本季Grimm Season 1 (2011) 第一季看点:该剧由<天使调查团>的一对制片组合Jim Kouf.David Greenwalt打造. 该剧根据<格林童话>中的原 ...

  7. linux批量改名

    rename 's/abc/xyz/' * 把包含abc的文件名,替换为xyz

  8. Easyui 搜索框的折叠与展开方法

    HTML 文件: <div id="searchForm" region="north" title="XXXX查询" collaps ...

  9. LaTeX技巧205:使用split输入多行公式技巧

    我们在输入多行公式的时候,split,array,multiline,align,aligned等等都是我们可以选用的环境,这里介绍split的使用方法.演示效果图: 演示代码:\documentcl ...

  10. MongoDB资料大全

    摘要: 为了帮助大家进一步了解MongoDB,云栖社区组织翻译了GitHub Awesome MongoDB 资源,涵盖MongoDB中常见的库与工具.应用列表.以及相关的文档.教程等资源. Mong ...