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));
}
より良い解決策を知っていますか?