如果通过Selenium executeAsyncScript执行,则如何从JavaScript回调中抛出异常

时间:2012-05-18 19:15:48

标签: javascript asynchronous selenium selenium-webdriver

我使用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));
        }

你知道更好的解决方案吗?

0 个答案:

没有答案