2012-10-07 32 views
1

我不確定如何使用nativeClickAt()方法單擊任意位置。在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) 

但是當我運行該腳本,我得到一個segfault錯誤

任何幫助將非常感激。

回答

2

我們已經討論了這個非公開腳本的非名單。

我們所做的:

  • 你必須有一個UI發送原始點擊事件:browser.show()
  • 當腳本執行,否則將在虛空中點擊你不能隱藏窗口 - >段錯誤。
1

本地點擊很大程度上取決於瀏覽器的狀態以及在您觸發事件時可能變得不可用的幀,從而導致段錯誤。

由於這取決於使用情況,最簡單的方法是進行可重複性測試!

不過,我會檢查該方法從2.0升級以來的行爲是否正確。

也一定要有最新的spynner!

此外,爲了在段錯誤發生時跟蹤spynner錯誤,最好總是使用gdb或任何調試器。是的,我過去一直通過改變代碼來解決segfaults問題。

+0

我們已經討論了非公開腳本的列表。 – kiorky

相關問題