1

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)

しかし、スクリプトを実行すると、segfaultエラーが発生します

どんな助けでも大歓迎です。

4

2 に答える 2

2

この非公開スクリプトのオフリストについて説明しました。

私たちがしたこと:

  • 生のクリックイベントを送信するには、UIが必要です。browser.show()
  • スクリプトの実行時にウィンドウを非表示にしないでください。非表示にすると、void->segfaultをクリックします。
于 2012-10-07T07:04:21.887 に答える
1

ネイティブクリックは、ブラウザの状態とそのフレームに大きく依存します。これらのフレームは、イベントを発生させたときに使用できなくなり、セグメンテーション違反が発生する可能性があります。

実際にはユースケースに依存するため、最も簡単なのは再現性のあるテストを行うことです。

それでも、2.0のアップグレード以降、メソッドが正しく動作することを確認します。

また、最新のスパイナーも忘れずに!

また、segfaultsが発生したときにスピナーエラーを追跡するには、常にgdbまたは任意のデバッガーを使用するのが最善です。そして、はい、私は過去までにsegfaultsを持っていましたが、常にコードを変更することで解決しました。

于 2012-10-07T06:02:43.233 に答える