7

ボタンを見つけてクリックするこの機能がありますが、その後アラートが表示され、phantom.jsを使用して確認する必要があります

function() {
  page.evaluate(function() {
    $('.item-list clicked').first().find($('.comment-delete')).find('a').click();
  })
}

すぐにクリックせずにアラートを呼び出す機能をエミュレートできますか?または、このアラートを待機するために関数 waitFor を使用しますか?

4

4 に答える 4

6

これに答えるのに役立つ他のstackoverflowの回答も見つかりませんが、基本的には、アラートポップアップを確認するjavascript関数を挿入できます。

これが私のpython webdriverの実装です:

def example_js_confirmation( self ):
    js_confirm = 'window.confirm = function(){return true;}'    # .js function to confirm a popup
    self.execute_javascript( js_confirm )
    self.find_by_id( 'submit' ).click()
    self.execute_javascript( 'return window.confirm' )  # trigger the injected js that returns true (virtually click OK)

誰かの todo リストに載っています =) : Selenium Desired Capabilities - PhantomJS ドライバーの handlesAlerts を設定します

于 2013-11-14T19:32:27.143 に答える
3

私の知る限り、Phantom.JS はヘッドレスです。あなたができる唯一のことは、アラートのコンテキストを取得することです

window.onAlert = function(alertText){
    ...
   }

しかし、これ以上はないと思います。プログラムでアラートを閉じる (一般に) ことも、(Phantom.JS で) レンダリングすることもできません。

いくつかのソース:
* Phantom.JS で JavaScript アラートをレンダリングする
*プログラムでアラートを閉じる

于 2013-11-11T11:11:22.653 に答える