我正在使用 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));
}
你知道更好的解决方案吗?