我不知道如何使用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 或任何调试器一起使用。是的,我过去总是通过更改代码来解决段错误。