pyjd / hulahop / pyxpcomを使用して入力フィールドを含むHTMLドキュメントをロードしています。この入力フィールドは、「onchange = ....」で、AJAX呼び出しを実行するJS関数にバインドされています。
htmlは次のようになります。
...
<input name="inp" type="text" onchange="checkInput()"></input>
...
このコードを使用して、入力フィールドを簡単に見つけて変更できます。
import pyjd
pyjd.setup(URL)
bw = pyjd.hula.wv
doc = bw.getDomDocument()
inp = doc.getElementsByName("inp").item(0)
inp.value = "somestring"
ただし、これは「onchange」ハンドラーをトリガーしません。これを行うには、入力フィールドに手動でタブイン/タブアウトする必要があるようです。pyxpcomインターフェイスがC++のものにかなり近いことを確認したので、C ++スニペットをたくさん読んだので、FocusManagerインターフェイスを使用して.focus()と.blur()を発行していくつかのことを試しました。 「inp」要素のイベントですが、これまでのところ成功していません。
誰かがこれがどのように機能することになっているのか知っていますか?それも可能ですか?アタッチされたonchangeハンドラーを直接呼び出す方法はありますか?
PS:パジャマタグで申し訳ありませんが、「pyjd」タグを作成することは許可されていません:-)