We google to find the solution but could not succeed, how do we add already recorded script into new script.
问题:
回答1:
There is an extension for Selenium-Core: "include", which can add the content of another test to the current test. Here is it's page on OpenQA wiki: http://wiki.openqa.org/display/SEL/include, but unfortunately at the moment it is not accessible. I used to use it in the past but eventually gave it up in a favor of ROLLUP RULES.
But if you are looking for a way to reuse a script in several test cases I would strongly recommend you use Rollup Rules. That is very powerful and underestimated by a lot of users feature of Selenium IDE.
Details of using Rollup Rules is written on a help page in Selenium IDE: menu Help - UI-Element Documentation, then search by keyword "Rollup".
回答2:
I ended up using Rollups as suggested by Yevgen. It took me some time to find the proper way to implement this. The basic idea is you end up writing a JavaScript file that is added to Selenium IDE under options/options in the Selenium Core Extensions setting. The JavaScript file, which you need to write to build your "reusable command stack", will allow you to use the built-in rollup command with the target being set to the label you assign to a group of commands.
I wrote an article about Selenium IDE Includes AKA Rollups that may be a useful resource.
An example rollup script:
/**
* For use in Selenium IDE.
*
* You will need to add this to Selenium under Options / Options in the Selenium Menu.
* Put this under Selenium Core Extensions:
* ~/selenium-ide-for-slp/sideflow.js , ~/selenium-ide-for-slp/slp_rollups.js
*
*
*/
var manager = new RollupManager();
/**
* check_for_syntax_errors
*
* This rollup tests for php syntax errors, warnings, and notices.
*/
manager.addRollupRule({
name: 'check_for_syntax_errors',
description: 'Check for PHP syntax errors, notices, warnings.',
args: [],
commandMatchers: [],
getExpandedCommands: function(args) {
var commands = [];
commands.push({
command: 'assertNotText',
target: '//body',
value: '*Notice: Undefined*'
});
commands.push({
command: 'assertNotText',
target: '//body',
value: '**Notice: Trying to get*'
});
commands.push({
command: 'assertNotText',
target: '//body',
value: '*Notice: Use of*'
});
commands.push({
command: 'assertNotText',
target: '//body',
value: '*Fatal error:*'
});
return commands;
}
});
Hope that helps.