1

我不确定如何使用nativeClickAt()方法单击任意位置。

spynner 课程中,医生说:

"""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)

但是当我运行脚本时,我得到一个 segfault error

任何帮助将不胜感激。

4

2 回答 2

2

我们已经讨论了这个非公开脚本的脱单。

我们所做的:

  • 您必须有一个 ui 才能发送原始点击事件:browser.show()
  • 脚本执行时不能隐藏窗口,否则会在 void -> segfault 中单击。
于 2012-10-07T07:04:21.887 回答
1

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

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

尽管如此,我会检查自 2.0 升级以来该方法是否正确运行。

也一定要拥有最新的 spynner !

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

于 2012-10-07T06:02:43.233 回答