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