在spynner模块中使用nativeClickAt()方法的Segfault

时间:2012-10-07 01:30:49

标签: python qt webkit spynner

我不确定如何使用nativeClickAt()方法点击仲裁员位置。

spynner class中,文件说:

"""Click on an arbitrar location of the browser.
@param where: where to click (QPoint)
@param real: if not true coordinates are relative to the window instead
    of the screen
@timeout seconds: seconds to wait after click"""

我搜索了QT doc以找出QPoint对象是什么。所以它似乎是x,y坐标。

到目前为止我尝试了什么:

import spynner
from PyQt4 import QtCore

browser = spynner.Browser(
    embed_jquery = True,
    debug_level = spynner.DEBUG
)

(...)

place = QtCore.QPoint(311,443)
print place # PyQt4.QtCore.QPoint(311, 443)
browser.nativeClickAt(place, 3, real=True)

但是当我运行脚本时,我遇到了段错误

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:2)

我们已经讨论过这个非公开剧本的名单。

我们做了什么:

  • 您必须有一个ui才能发送原始点击事件:browser.show()
  • 您不得在脚本执行时隐藏窗口,否则它将在空白处单击 - >段错误。

答案 1 :(得分:1)

本机点击在很大程度上取决于浏览器的状态及其在您触发事件时可能无法使用的帧,从而导致段错误。

由于它实际上取决于用例,最简单的方法是进行可重复的测试!

然而,我会检查自2.0升级以来该方法是否正常运行。

还要确保拥有最新的spynner!

此外,要在发生段错误时跟踪spynner错误,最好总是使用gdb或任何调试器。是的,我过去的段错误总是通过更改我的代码来解决。