Feature Requests & Bug Fix Requests. ADD YOURS!
Forum rules
iMacros EOL - Attention!
The renewal maintenance has officially ended for Progress iMacros effective November 20, 2023 and all versions of iMacros are now considered EOL (End-of-Life). The iMacros products will no longer be supported by Progress (aside from customer license issues), and these forums will also no longer be moderated from the Progress side.
Thank you again for your business and support.
Sincerely,
The Progress Team
Before asking a question or reporting an issue:
1. Please review the list of FAQ's.
2. Use the search box (at the top of each forum page) to see if a similar problem or question has already been addressed.
3. Try searching the iMacros Wiki - it contains the complete iMacros reference as well as plenty of samples and tutorials.
4. We can respond much faster to your posts if you include the following information: CLICK HERE FOR IMPORTANT INFORMATION TO INCLUDE IN YOUR POST
iMacros EOL - Attention!
The renewal maintenance has officially ended for Progress iMacros effective November 20, 2023 and all versions of iMacros are now considered EOL (End-of-Life). The iMacros products will no longer be supported by Progress (aside from customer license issues), and these forums will also no longer be moderated from the Progress side.
Thank you again for your business and support.
Sincerely,
The Progress Team
Before asking a question or reporting an issue:
1. Please review the list of FAQ's.
2. Use the search box (at the top of each forum page) to see if a similar problem or question has already been addressed.
3. Try searching the iMacros Wiki - it contains the complete iMacros reference as well as plenty of samples and tutorials.
4. We can respond much faster to your posts if you include the following information: CLICK HERE FOR IMPORTANT INFORMATION TO INCLUDE IN YOUR POST
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
How about a script "Step" through button to execute the next script line instead of having to pause.
Perhaps enabling break points with a command, such as BREAKPOINT, that automatically activates the 'Pause' procedure?
Perhaps enabling break points with a command, such as BREAKPOINT, that automatically activates the 'Pause' procedure?
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
How about the SAVEAS command saving the entire web page instead of just the visible region? In other words, saves the entire scrollable region.
An example would be a product like SnagIt
An example would be a product like SnagIt
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
How about block commenting?
I've always hated VB commenting using the single quote '
It has never accommodated the ability to block comment (as well as messed up string syntax)
Block commenting would be very useful for debugging macros, as well as adding detailed comments.
I would suggest c style block comments /* comments */
Even C style in line comments // is better than ' as the single quote is sometimes useful in value assignment, such as: -
The above will work, but the ' in the CONTENT may confuse someone into thinking it is a comment 't<SP>Do<SP>It
Block commenting is a real time saver: -
Uncommented
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Hour CONTENT=%11
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Minute CONTENT=%45
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:AMPM CONTENT=%PM
Single line comments
' Skip this bit
' TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Hour CONTENT=%11
' TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Minute CONTENT=%45
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:AMPM CONTENT=%PM
Block Commenting
/* Skip this bit
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Hour CONTENT=%11
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Minute CONTENT=%45
*/
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:AMPM CONTENT=%PM
For 2 lines, it's not so bad, but 50 lines requires inserting an ' in front of all 50 lines, then removing them one by one.
I've always hated VB commenting using the single quote '
It has never accommodated the ability to block comment (as well as messed up string syntax)
Block commenting would be very useful for debugging macros, as well as adding detailed comments.
I would suggest c style block comments /* comments */
Even C style in line comments // is better than ' as the single quote is sometimes useful in value assignment, such as: -
Code: Select all
'Commented line
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:Form1 ATTR=NAME:fieldname CONTENT=Don't<SP>Do<SP>It
Block commenting is a real time saver: -
Uncommented
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Hour CONTENT=%11
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Minute CONTENT=%45
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:AMPM CONTENT=%PM
Single line comments
' Skip this bit
' TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Hour CONTENT=%11
' TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Minute CONTENT=%45
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:AMPM CONTENT=%PM
Block Commenting
/* Skip this bit
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Hour CONTENT=%11
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:Minute CONTENT=%45
*/
TAG POS=1 TYPE=SELECT FORM=NAME:Form1 ATTR=NAME:AMPM CONTENT=%PM
For 2 lines, it's not so bad, but 50 lines requires inserting an ' in front of all 50 lines, then removing them one by one.
- Tech Support
- Posts: 4948
- Joined: Tue Sep 20, 2005 7:25 pm
- Contact:
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
Thanks for all the good suggestions, please keep them coming.
We continue to watch this post as we work on the next upgrades
We continue to watch this post as we work on the next upgrades
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
Why not pin it then? If it slides off the front page, it's unlikely people will add to it and the development team, may well forget about it.Tech Support wrote:Thanks for all the good suggestions, please keep them coming.
We continue to watch this post as we work on the next upgrades
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
How about adding a simple goto statement option, like in DOS, as well as an optional timeout label?
Then have a label the script goes to on timeout? This would accomplish some conditional behavior.
Example: -
It could also be a loop mechanism, iterating through a collection until done
Example: -
This could be a cheap and dirty IF (tag not found) conditional statement and a loop, all in one
Then have a label the script goes to on timeout? This would accomplish some conditional behavior.
Example: -
Code: Select all
SET TIMEOUT 10 GOTO LoginTimeout
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:AccountNumber CONTENT=myAccountName
GOTO SkipLoginTimeout
:LoginTimeout
URL GOTO=https://mydomain.com/error_pages/FailedLogIn.htm
GOTO End
'just carry on to the next line of the script
:SkipLoginTimeout
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:form1 ATTR=NAME:password CONTENT=myPassword
'End Of Script
:End
Example: -
Code: Select all
Set !VAR 0
'When the script times out next, it will go to the label beyond the loop
SET TIMEOUT 2 EndLoop
:LoopStart
'Increment a counter
ADD !VAR1 1
'Set up the elements attribute name
SET !VAR2 item{{!VAR1}}
'Note the dynamic attribute name and incremental content value
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:{{!VAR2}} CONTENT={{!VAR1}}
'Set the next element or timeout
Goto LoopStart
:EndLoop
SET TIMEOUT 10
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
Yes please add some conditional stuff... it will make us way more happy..ABooth wrote:...
also if you can add filter of flash files will be nice
like that
Code: Select all
FILTER TYPE=FLASH STATUS=ON
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
How about access to the DOM from Javascript macros via an iim function?
Right now, there's a disconnect between the javascript executing in the plugin and the browser it is being run in. Surely, iMacros browser plug-in can bridge the gap between the browser it's being run in and the javascript macro it is executing?
The function would act similar to the TAG command, but instead of processing an action, returns a handle to the object it found.
Example function declaration.
Example usage: -
This would resolve a lot of the issues people have with getting the specific object and doing more than either clicking it, extracting from it, or setting the content.
Right now, there's a disconnect between the javascript executing in the plugin and the browser it is being run in. Surely, iMacros browser plug-in can bridge the gap between the browser it's being run in and the javascript macro it is executing?
The function would act similar to the TAG command, but instead of processing an action, returns a handle to the object it found.
Example function declaration.
Code: Select all
public object iimDom( string IdAttribute )
public object iimDom( string Attribute, Boolean isName)
public object iimDom( string Attribute, string value)
Code: Select all
var passwordInput = iimDom( 'pass');
passwordInput.value = "newPassword";
var form = iimDom( 'form1');
form.submit();
Last edited by ABooth on Mon Nov 30, 2009 2:38 pm, edited 2 times in total.
-
- Posts: 25
- Joined: Mon Oct 19, 2009 4:02 pm
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
I simply cannot pay for imacros untill it includes secure SOCKS 5 proxy support with a possible username and password.
-
- Posts: 175
- Joined: Sun Jul 06, 2008 3:24 am
WAIT SECONDS FEATURE REQUEST
As it stands the WAIT SECONDS causes a very linear and limited option for macros. While sometimes one wait on a single page is all you need sometimes you need it to perform multiple functions on a single page/tab at one time using different times. An example of this is... I need you to click this wait 120 seconds and do this... however while that timer is running I need you to do this, and click this after 180 seconds... etc etc
Basically I think WAIT SECONDS should be replaced with something like TIMER1 TIMER2 etc.
Basically I think WAIT SECONDS should be replaced with something like TIMER1 TIMER2 etc.
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
Until that may be included, you can use custom variables like "WAIT SECONDS={{mytimer1}}" and use "iimSet()" in a script to fill them.additional001 wrote: Basically I think WAIT SECONDS should be replaced with something like TIMER1 TIMER2 etc.
-
- Posts: 175
- Joined: Sun Jul 06, 2008 3:24 am
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
No I think you misunderstood me. This will not change the fact that only iMacro's can only process one WAITE SECONDS at a time. The wait time is not the problem here. What is the problem is that While it's waiting to complete one wait time.... I need it to be doing something else... and that something else is working on another WAIT SECONDS.Hannes, iOpus wrote:Until that may be included, you can use custom variables like "WAIT SECONDS={{mytimer1}}" and use "iimSet()" in a script to fill them.additional001 wrote: Basically I think WAIT SECONDS should be replaced with something like TIMER1 TIMER2 etc.
It's really hard to explain...
Lets say my macro has two WAIT SECONDS commands in it. One is for 120 and one for 180. This macro is small and it will be looped let's say 3 times.
Now here is what i need it to do
Process a few TAG commands.
WAIT SECONDS=120 (but I don't want it to wait before it moves on to another set of TAGS. I just want it to wait the 120 seconds before doing those TAG lines again.)
At the same time as the first WAIT is happening I want it to process a SECOND set of TAG lines
and this is when the WAIT SECONDS=180 would kick in.
After the 120 is finish it then loops those tags again 120 seconds again
After the 180 finishes it then loops the 180 again.
This would continue until both sets of TAG lines have been executed 3 times in a loop... thus ending the script.
Instead of having a linear method of processing WAIT TIMES... I'm asking for a multi-tasking method.
I hope this makes more sense now.
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
You're suggesting multi-threading. To achieve this, you could try a JavaScript macro with setTimeout or setInterval where the timer instance called iimPlay() with a macro snippet?additional001 wrote:No I think you misunderstood me. This will not change the fact that only iMacro's can only process one WAITE SECONDS at a time. The wait time is not the problem here. What is the problem is that While it's waiting to complete one wait time.... I need it to be doing something else... and that something else is working on another WAIT SECONDS.Hannes, iOpus wrote:Until that may be included, you can use custom variables like "WAIT SECONDS={{mytimer1}}" and use "iimSet()" in a script to fill them.additional001 wrote: Basically I think WAIT SECONDS should be replaced with something like TIMER1 TIMER2 etc.
It's really hard to explain...
Lets say my macro has two WAIT SECONDS commands in it. One is for 120 and one for 180. This macro is small and it will be looped let's say 3 times.
Now here is what i need it to do
Process a few TAG commands.
WAIT SECONDS=120 (but I don't want it to wait before it moves on to another set of TAGS. I just want it to wait the 120 seconds before doing those TAG lines again.)
At the same time as the first WAIT is happening I want it to process a SECOND set of TAG lines
and this is when the WAIT SECONDS=180 would kick in.
After the 120 is finish it then loops those tags again 120 seconds again
After the 180 finishes it then loops the 180 again.
This would continue until both sets of TAG lines have been executed 3 times in a loop... thus ending the script.
Instead of having a linear method of processing WAIT TIMES... I'm asking for a multi-tasking method.
I hope this makes more sense now.
something like: -
Code: Select all
function main()
{
iimPlay('MacroBeforeAllTimers'); // This is a macro that executes before any timers are set
// A collection of separate threaded macros that launch at different intervals or concurrently
timerMacro('Macro2', 5); // Run this in 5 seconds
timerMacro('Macro3', 2); // Run this in 2 seconds
timerMacro('Macro4', 10); // Run this in 10 seconds
timerMacro('Macro5', 10); // Run this in 2 seconds (concurrently with macro3)
iimPlay('MacroAtStartOfTimerPeriod'); // Run this one while the timed macros are waiting to trigger
}
function timerMacro(macroName, delay)
{
setTimeout("executeMacro('" + macroName + "')", delay * 1000);
}
function executeMacro(macroName)
{
iimPlay(macroName);
}
main();
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
How about adding a "Take Screenshot" button to the record tab, that's enabled only when recording? It would insertinto the generated macro.
Code: Select all
SAVEAS TYPE=PNG FOLDER=* FILE=*
- Tech Support
- Posts: 4948
- Joined: Tue Sep 20, 2005 7:25 pm
- Contact:
Re: Feature Requests & Bug Fix Requests. ADD YOURS!
Nice idea - and very easy to addHow about adding a "Take Screenshot" button to the record tab, that's enabled only when recording?