Feature Requests & Bug Fix Requests. ADD YOURS!

Discussions and Tech Support specific to the iMacros Firefox add-on.
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
Post Reply
ABooth
Posts: 223
Joined: Mon Aug 10, 2009 4:25 pm

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by ABooth » Thu Aug 20, 2009 5:31 pm

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?
iMacros for Firefox supports JavaScript Macros (Scripting)
JavaScript supports Java via LiveConnect

Therefore: You can write powerful macros with iMacros for Firefox. Have a look at this one

Post feature requests here. Maybe one day, they'll pin it?
ABooth
Posts: 223
Joined: Mon Aug 10, 2009 4:25 pm

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by ABooth » Mon Aug 24, 2009 1:00 pm

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
iMacros for Firefox supports JavaScript Macros (Scripting)
JavaScript supports Java via LiveConnect

Therefore: You can write powerful macros with iMacros for Firefox. Have a look at this one

Post feature requests here. Maybe one day, they'll pin it?
ABooth
Posts: 223
Joined: Mon Aug 10, 2009 4:25 pm

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by ABooth » Mon Aug 24, 2009 2:25 pm

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: -

Code: Select all

'Commented line
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:Form1 ATTR=NAME:fieldname CONTENT=Don't<SP>Do<SP>It
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.
iMacros for Firefox supports JavaScript Macros (Scripting)
JavaScript supports Java via LiveConnect

Therefore: You can write powerful macros with iMacros for Firefox. Have a look at this one

Post feature requests here. Maybe one day, they'll pin it?
User avatar
Tech Support
Posts: 4948
Joined: Tue Sep 20, 2005 7:25 pm
Contact:

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by Tech Support » Wed Aug 26, 2009 8:03 am

Thanks for all the good suggestions, please keep them coming.

We continue to watch this post as we work on the next upgrades :)
ABooth
Posts: 223
Joined: Mon Aug 10, 2009 4:25 pm

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by ABooth » Fri Aug 28, 2009 5:22 pm

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 :)
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.
iMacros for Firefox supports JavaScript Macros (Scripting)
JavaScript supports Java via LiveConnect

Therefore: You can write powerful macros with iMacros for Firefox. Have a look at this one

Post feature requests here. Maybe one day, they'll pin it?
ABooth
Posts: 223
Joined: Mon Aug 10, 2009 4:25 pm

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by ABooth » Sun Sep 20, 2009 4:59 am

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: -

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
It could also be a loop mechanism, iterating through a collection until done

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
This could be a cheap and dirty IF (tag not found) conditional statement and a loop, all in one
iMacros for Firefox supports JavaScript Macros (Scripting)
JavaScript supports Java via LiveConnect

Therefore: You can write powerful macros with iMacros for Firefox. Have a look at this one

Post feature requests here. Maybe one day, they'll pin it?
ooyes
Posts: 4
Joined: Tue Oct 20, 2009 4:48 am

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by ooyes » Tue Oct 20, 2009 5:17 am

ABooth wrote:...
Yes please add some conditional stuff... it will make us way more happy..

also if you can add filter of flash files will be nice :)

like that

Code: Select all

FILTER TYPE=FLASH STATUS=ON
ABooth
Posts: 223
Joined: Mon Aug 10, 2009 4:25 pm

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by ABooth » Tue Nov 24, 2009 2:08 pm

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.

Code: Select all

public object iimDom( string IdAttribute )
public object iimDom( string Attribute, Boolean isName)
public object iimDom( string Attribute, string value)
Example usage: -

Code: Select all

var passwordInput = iimDom( 'pass');
passwordInput.value = "newPassword";
var form = iimDom( 'form1');
form.submit();
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.
Last edited by ABooth on Mon Nov 30, 2009 2:38 pm, edited 2 times in total.
iMacros for Firefox supports JavaScript Macros (Scripting)
JavaScript supports Java via LiveConnect

Therefore: You can write powerful macros with iMacros for Firefox. Have a look at this one

Post feature requests here. Maybe one day, they'll pin it?
darkAsPitch
Posts: 25
Joined: Mon Oct 19, 2009 4:02 pm

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by darkAsPitch » Sat Nov 28, 2009 8:49 pm

I simply cannot pay for imacros untill it includes secure SOCKS 5 proxy support with a possible username and password.
additional001
Posts: 175
Joined: Sun Jul 06, 2008 3:24 am

WAIT SECONDS FEATURE REQUEST

Post by additional001 » Fri Dec 11, 2009 5:39 pm

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.
Hannes, Tech Support

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by Hannes, Tech Support » Mon Dec 14, 2009 1:49 pm

additional001 wrote: Basically I think WAIT SECONDS should be replaced with something like TIMER1 TIMER2 etc.
Until that may be included, you can use custom variables like "WAIT SECONDS={{mytimer1}}" and use "iimSet()" in a script to fill them.
additional001
Posts: 175
Joined: Sun Jul 06, 2008 3:24 am

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by additional001 » Wed Dec 16, 2009 5:57 am

Hannes, iOpus wrote:
additional001 wrote: Basically I think WAIT SECONDS should be replaced with something like TIMER1 TIMER2 etc.
Until that may be included, you can use custom variables like "WAIT SECONDS={{mytimer1}}" and use "iimSet()" in a script to fill them.
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.

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.
ABooth
Posts: 223
Joined: Mon Aug 10, 2009 4:25 pm

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by ABooth » Wed Dec 16, 2009 2:33 pm

additional001 wrote:
Hannes, iOpus wrote:
additional001 wrote: Basically I think WAIT SECONDS should be replaced with something like TIMER1 TIMER2 etc.
Until that may be included, you can use custom variables like "WAIT SECONDS={{mytimer1}}" and use "iimSet()" in a script to fill them.
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.

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.
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?

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();
This would all depend on whether iMacros is thread safe. If not, you could create a command script that launches separate firefox instances, each launching an iMacro on start.
iMacros for Firefox supports JavaScript Macros (Scripting)
JavaScript supports Java via LiveConnect

Therefore: You can write powerful macros with iMacros for Firefox. Have a look at this one

Post feature requests here. Maybe one day, they'll pin it?
ABooth
Posts: 223
Joined: Mon Aug 10, 2009 4:25 pm

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by ABooth » Wed Jan 13, 2010 3:55 pm

How about adding a "Take Screenshot" button to the record tab, that's enabled only when recording? It would insert

Code: Select all

SAVEAS TYPE=PNG FOLDER=* FILE=*
into the generated macro.
iMacros for Firefox supports JavaScript Macros (Scripting)
JavaScript supports Java via LiveConnect

Therefore: You can write powerful macros with iMacros for Firefox. Have a look at this one

Post feature requests here. Maybe one day, they'll pin it?
User avatar
Tech Support
Posts: 4948
Joined: Tue Sep 20, 2005 7:25 pm
Contact:

Re: Feature Requests & Bug Fix Requests. ADD YOURS!

Post by Tech Support » Wed Jan 13, 2010 10:27 pm

How about adding a "Take Screenshot" button to the record tab, that's enabled only when recording?
Nice idea - and very easy to add :)
Post Reply