3

Selenium WebDriver を使用して、いくつかのスクリプトを自動化しています。ほとんどの機能は JavaScript エンドポイントを使用して実行されますが、このロジックを Python に移行することはできませんでした。

// Python Selenium script 
data = self.driver.execute_async_script('selenium.get_data(arguments)')

// JavaScript placed somewhere on the page tested
selenium.get_data = function(args) {
    $.ajax({ 
        url:'http://servername/ajax_data', 
        success: function(data) {
            args[0](data);
        },
        error: function(data) {
            // here I would like to notify selenium that everything is broken
        }
    });
};

通常、JavaScript には、すべてが既に壊れていることがわかっているポイントがあり、Selenium スクリプトで例外を発生させたいと考えています。もちろん、タイムアウトを待つこともできますが、スクリプトのタイムアウトがかなり長く、エラー メッセージで追加のデバッグ情報を提供できませんでした。

ドキュメント ( http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/JavascriptExecutor.html ) とテストのソース コード ( http://code.google .com/p/selenium/source/browse/trunk/java/client/test/org/openqa/selenium/ExecutingAsyncJavascriptTest.java?r=15810 )。

今のところ、私は回避策を使用していますが、それは良くないようです:

        error: function(data) {
            window.alert(JSON.stringify(data));
        }

より良い解決策を知っていますか?

4

0 に答える 0