iPhone アプリケーションの自動単体テストをセットアップしようとしています。私は UIWebView を使用しており、さまざまなリンクのクリックをシミュレートする必要があります。JavaScript でこれを試してみましたが、リンクを手動でクリックしたときと同じ結果にはなりません。主な問題は、target
プロパティが設定されているリンクにあります。
標準の「ポップアップ」リンク (例: <a href="http://example.com" target="_blank">
) を手動でクリックすると、UIWebView はクリック イベントを無視し、何も移動しません。次に、JavaScript メソッドを介してこのまったく同じリンクを自動的にクリックしようとするとdispatchEvent()
、UIWebView はtarget
属性を完全に無視し、現在のページで通常どおりリンクを開きます。
手動でリンクをクリックしたときとまったく同じ結果を生成するには、自動単体テストが必要です。
この自動化された単体テストが正しく機能する唯一の方法は、特定の x/y 座標 (つまり、リンクが配置されている場所) でのマウス クリックをシミュレートすることだと思います。単体テストは内部でのみ使用されるため、プライベート API 呼び出しは問題ありません。
iPhone アプリisimulateが似たようなことをしているように見えるので、これは可能であるように思われます。
フレームワークでこれを行う方法はありますか?
Simulate mouse click to window instead of screenというタイトルの同様の質問を見つけましたが、この方法は OS X でのみ有効であり、iPhone OS では有効ではないと推測しています。