qt+evaluatejavascript
来源:互联网 发布:荣耀v10网络制式 编辑:程序博客网 时间:2024/05/28 05:17
think the click()
failure may have something to do with how the google page uses javascript to transform the original A
element after it loads. If you wrap your evaluateJavaScript()
call in an alert()
, you can see that the click
method is null
link.evaluateJavaScript('this.click')
It is not a 100% cross-browser support to be able to call "click" on a link. It would need to be a button.
You have a couple alternatives...
(#1) Just navigate to the href of the link
def _loadComplete(self): page = self.page() doc = page.currentFrame().documentElement() link = doc.findFirst('#link-signup') if link and not link.isNull(): self.load(QUrl.fromEncoded(link.attribute('href').toAscii()))
(#2) Simulate a click on the web view
def _loadComplete(self): page = self.page() doc = page.currentFrame().documentElement() link = doc.findFirst('#link-signup') if link and not link.isNull(): pos = link.geometry().center() self._doMouseClick(page, pos) else: print "Link not found"@staticmethoddef _doMouseClick(obj, pos): # mouse down evt = QMouseEvent(QEvent.MouseButtonPress, pos, Qt.LeftButton, Qt.LeftButton, Qt.NoModifier) QApplication.sendEvent(obj, evt) # mouse up evt = QMouseEvent(QEvent.MouseButtonRelease, pos, Qt.LeftButton, Qt.LeftButton, Qt.NoModifier) QApplication.sendEvent(obj, evt)
(#3) Make the link clickable via javascript
def _loadComplete(self): page = self.page() doc = page.currentFrame().documentElement() link = doc.findFirst('#link-signup') if link and not link.isNull(): link.evaluateJavaScript(""" var e = document.createEvent('MouseEvents'); e.initEvent('click', true, true); this.dispatchEvent(e);
""")
原文地址:http://stackoverflow.com/questions/13553817/pyqt4-does-not-redirect-me-to-the-next-page/13554601#13554601
1 0
- qt+evaluatejavascript
- 关于QT中evaluateJavaScript()函数返回值的处理问题
- webView.evaluateJavascript 返回null
- java.lang.NoSuchMethodError: android.webkit.WebView.evaluateJavascript
- JsBridge最详细的解析,高版本webview的evaluateJavascript
- oc调javascript方法(evaluateJavaScript:)&&js给oc发通知
- android4.4 evaluateJavascript 到android2.X上不能调用的问题
- QT
- QT
- QT
- Qt
- qt
- QT
- QT
- QT
- QT
- qt
- Qt
- 搭建Appium自动化测试平台环境(基于python&android)
- Google网络请求框架Volley源码浅析(二)
- python命令行自动补全
- Problem C: 数组---求数组中的最大值
- 查找未公开的oracle初始化参数
- qt+evaluatejavascript
- 基本的算法思想
- HDU2188 && HDU2149 && HDU1846
- 打印100—200之间的素数及优化
- 编译ZermoMQ时修改rpath路径
- 用正确的方式写if语句——与零值作比较
- 将十进制转换为二进制和十六进制
- 输出一个数的二进制数的奇数序列和偶数序列(三种方法)
- Tomcat安装教程