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



我不知道如何使用nativeClickAt()方法来单击任意位置。

在斯宾纳课上,医生说:

"""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文档以找出什么是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)

但是当我运行脚本时,我收到一个段错误错误

任何帮助将不胜感激。

我们已经讨论了这个非公共脚本的offlist。

我们做了什么:

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

本机单击在很大程度上取决于浏览器及其帧的状态,当您触发事件时,这些帧可能会变得不可用,从而导致段错误。

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

不过,我将检查该方法自 2.0 升级以来的行为是否正确。

也一定要有最新的间谍!

此外,为了在发生段错误时跟踪 spynner 错误,最好始终让它与 gdb 或任何调试器一起使用。是的,我过去总是通过更改代码来解决段错误。

相关内容

最新更新