How to ignore or change a field if column is empty

Discussions and Tech Support related to the iMacros Firefox Add-on, including the built-in Javascript scripting interface for playing .js files.

Moderators: Community Moderators, iMacros Moderators

Forum rules
Before asking a question or reporting an issue:
1. Please review the list of FAQ's.
2. Use the Google search box (at the top of each forum page) to see if a similar problem or question has already been addressed. This will search the entire contents of the forums as well as the iMacros Wiki.
3. We can respond much faster to your posts if you include the following information:

CLICK HERE FOR IMPORTANT INFORMATION TO INCLUDE IN YOUR POST

Answering your own posts (e.g. attempting to "bump" your topic) drops your topic from the list of unanswered threads, so it may actually receive less views.

How to ignore or change a field if column is empty

by babarali124 on Mon Nov 20, 2017 8:15 pm

Hi,

Windows Version 10
Imacros Version : 9030808
Firefox Version 55

This is not my first question in this forum, as I have been asking question whenever I am stuck and this forum helps me out every time. The title may seem weird that I will explain it here for further clarification. The thing is I have created a imacros script that is working perfect but there is one hurdle that I want to overcome. I searched google and didnt find the answer , it is related to if else condition. However, I know if else does not exist in imacros if im not wrong, so this is what I want to do,



the script takes data from the file, each column has some data in it. So the script goes on and fills out the fields etc, but at one point there is a drop down box and one value is to be select , now everytime ths script selects the same value as defined in the imacros , but i want the script to choose anyone optional , so maybe something like if the column( in the csv file) has the data yes then select "increase" else if the column (in the csv file) has No then select "decrease" value from the drop down. This is just my idea, i dont know whether this is the right way to do it.

Code: Select all
TAG POS=35 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL13}}
TAG POS=4 TYPE=SELECT ATTR=TXT:Increase<SP>byDecrease<SP>by CONTENT=%-1
TAG POS=36 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL14}}


2nd thing I want to know is, I the column in the csv file is empty so the script should ignore certain steps, or do certain steps instead. for eg : if the column1 has "yes" then click on the yes button or if the column1 has "no" or empty data click on the cancel button in firefox.

so like if colum16 has no value then the lines in the red color should be ignored.
Code: Select all
TAG POS=1 TYPE=PRE ATTR=* EXTRACT=TXT
TAB T=1
TAB CLOSEALLOTHERS
TAG POS=1 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}
WAIT SECONDS=2
[color=#BF0040]TAG POS=1 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=4
TAG POS=16 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL16}}
WAIT SECONDS=5
TAG POS=2 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}[/color]
WAIT SECONDS=2



Last thing, for eg: there are a list of links generated with dynamic id every single time, but i can target any of them by matching the tag name value, now the problem here is the number of links change sometimes there are 2 sometimes 10 sometimes 100, I can target any link and click it by tag pos=1....100 , is there a way to target the particular link . I am sharing my script code to understand my questions better..

This is the complete script. Above code is also taken from this script for clarification.
Code: Select all
VERSION BUILD=9030808 RECORDER=FX
TAB T=1
SET !ERRORIGNORE YES
SET !EXTRACT_TEST_POPUP NO
SET !TIMEOUT_PAGE 15
SET !TIMEOUT_STEP 0
SET !DATASOURCE testing.csv
SET !LOOP 2
SET !DATASOURCE_LINE {{!loop}}
TAG POS=1 TYPE=INPUT:BUTTON ATTR=ID:CampaignsGrid_create
WAIT SECONDS=3
TAG POS=1 TYPE=SPAN ATTR=TXT:Visits<SP>to<SP>my<SP>website
WAIT SECONDS=5
TAG POS=6 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL1}}
WAIT SECONDS=5
TAG POS=7 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL2}}
TAG POS=3 TYPE=INPUT:RADIO ATTR=NAME:targetOptions
TAG POS=10 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL3}}
TAG POS=1 TYPE=SPAN ATTR=TABINDEX:0&&ROLE:button&&ARIA-LABEL:Enter<SP>a<SP>location<SP>to<SP>target<SP>or<SP>exclude&&CLASS:searchbox-searchbutton<SP>filter_search_icon_small<SP>clickable&&TXT:
WAIT SECONDS=3
TAG POS=1 TYPE=A ATTR=TXT:Target
WAIT SECONDS=3
TAG POS=5 TYPE=INPUT:CHECKBOX ATTR=* CONTENT=NO
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=3
TAG POS=14 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL4}}
TAG POS=15 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL5}}
TAB OPEN
TAB T=2
URL GOTO={{!COL15}}
TAG POS=1 TYPE=PRE ATTR=* EXTRACT=TXT
TAB T=1
TAB CLOSEALLOTHERS
TAG POS=1 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}
WAIT SECONDS=2
TAG POS=1 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=4
TAG POS=16 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL16}}
WAIT SECONDS=5
TAG POS=2 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}
WAIT SECONDS=2
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=5
TAG POS=1 TYPE=A ATTR=TXT:Create<SP>ad
WAIT SECONDS=5
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:FinalUrls CONTENT={{!COL6}}
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart1 CONTENT={{!COL7}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart2 CONTENT={{!COL8}}
WAIT SECONDS=1
TAG POS=1 TYPE=TEXTAREA ATTR=NAME:Ad.ExpandedTextAd.AdDescription CONTENT={{!COL11}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path1 CONTENT={{!COL9}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path2 CONTENT={{!COL10}}
WAIT SECONDS=1
TAG POS=11 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=2
TAG POS=2 TYPE=A ATTR=TXT:Create<SP>ad
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:FinalUrls CONTENT={{!COL6}}
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart1 CONTENT={{!COL7}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart2 CONTENT={{!COL8}}
WAIT SECONDS=1
TAG POS=1 TYPE=TEXTAREA ATTR=NAME:Ad.ExpandedTextAd.AdDescription CONTENT={{!COL11}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path1 CONTENT={{!COL9}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path2 CONTENT={{!COL10}}
WAIT SECONDS=1
TAG POS=11 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
TAG POS=1 TYPE=SELECT ATTR=NAME:Settings.BiddingScheme.Type CONTENT=%ManualCpc
TAG POS=26 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL12}}
WAIT SECONDS=2
TAG POS=27 TYPE=INPUT:TEXT ATTR=* CONTENT=9.00
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:Ad<SP>groupBidEstimated<SP>monthly<SP>clicksEstimated<SP>mon*
TAG POS=1 TYPE=A ATTR=TXT:Advanced<SP>campaign<SP>settings
TAG POS=1 TYPE=A ATTR=TXT:Device
TAG POS=35 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL13}}
TAG POS=4 TYPE=SELECT ATTR=TXT:Increase<SP>byDecrease<SP>by CONTENT=%-1
TAG POS=36 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL14}}
WAIT SECONDS=1
TAG POS=1 TYPE=A ATTR=TXT:Ad<SP>distribution
WAIT SECONDS=1
TAG POS=2 TYPE=INPUT:RADIO ATTR=NAME:SyndicationType
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:×
WAIT SECONDS=5
babarali124
 
Posts: 17
Joined: Sat Jul 15, 2017 9:24 pm

Re: How to ignore or change a field if column is empty

by chivracq on Mon Nov 20, 2017 11:56 pm

babarali124 wrote:Hi,

Code: Select all
Windows Version 10
Imacros Version : 9030808
Firefox Version 55


This is not my first question in this forum, as I have been asking question whenever I am stuck and this forum helps me out every time. The title may seem weird that I will explain it here for further clarification. The thing is I have created a imacros script that is working perfect but there is one hurdle that I want to overcome. I searched google and didnt find the answer , it is related to if else condition. However, I know if else does not exist in imacros if im not wrong, so this is what I want to do,

the script takes data from the file, each column has some data in it. So the script goes on and fills out the fields etc, but at one point there is a drop down box and one value is to be select , now everytime ths script selects the same value as defined in the imacros , but i want the script to choose anyone optional , so maybe something like if the column( in the csv file) has the data yes then select "increase" else if the column (in the csv file) has No then select "decrease" value from the drop down. This is just my idea, i dont know whether this is the right way to do it.

Code: Select all
TAG POS=35 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL13}}
TAG POS=4 TYPE=SELECT ATTR=TXT:Increase<SP>byDecrease<SP>by CONTENT=%-1
TAG POS=36 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL14}}


2nd thing I want to know is, I the column in the csv file is empty so the script should ignore certain steps, or do certain steps instead. for eg : if the column1 has "yes" then click on the yes button or if the column1 has "no" or empty data click on the cancel button in firefox.

so like if colum16 has no value then the lines in the red color should be ignored.
Code: Select all
TAG POS=1 TYPE=PRE ATTR=* EXTRACT=TXT
TAB T=1
TAB CLOSEALLOTHERS
TAG POS=1 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}
WAIT SECONDS=2
[color=#BF0040]TAG POS=1 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=4
TAG POS=16 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL16}}
WAIT SECONDS=5
TAG POS=2 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}[/color]
WAIT SECONDS=2


Last thing, for eg: there are a list of links generated with dynamic id every single time, but i can target any of them by matching the tag name value, now the problem here is the number of links change sometimes there are 2 sometimes 10 sometimes 100, I can target any link and click it by tag pos=1....100 , is there a way to target the particular link . I am sharing my script code to understand my questions better..

This is the complete script. Above code is also taken from this script for clarification.
Code: Select all
VERSION BUILD=9030808 RECORDER=FX
TAB T=1
SET !ERRORIGNORE YES
SET !EXTRACT_TEST_POPUP NO
SET !TIMEOUT_PAGE 15
SET !TIMEOUT_STEP 0
SET !DATASOURCE testing.csv
SET !LOOP 2
SET !DATASOURCE_LINE {{!loop}}
TAG POS=1 TYPE=INPUT:BUTTON ATTR=ID:CampaignsGrid_create
WAIT SECONDS=3
TAG POS=1 TYPE=SPAN ATTR=TXT:Visits<SP>to<SP>my<SP>website
WAIT SECONDS=5
TAG POS=6 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL1}}
WAIT SECONDS=5
TAG POS=7 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL2}}
TAG POS=3 TYPE=INPUT:RADIO ATTR=NAME:targetOptions
TAG POS=10 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL3}}
TAG POS=1 TYPE=SPAN ATTR=TABINDEX:0&&ROLE:button&&ARIA-LABEL:Enter<SP>a<SP>location<SP>to<SP>target<SP>or<SP>exclude&&CLASS:searchbox-searchbutton<SP>filter_search_icon_small<SP>clickable&&TXT:
WAIT SECONDS=3
TAG POS=1 TYPE=A ATTR=TXT:Target
WAIT SECONDS=3
TAG POS=5 TYPE=INPUT:CHECKBOX ATTR=* CONTENT=NO
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=3
TAG POS=14 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL4}}
TAG POS=15 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL5}}
TAB OPEN
TAB T=2
URL GOTO={{!COL15}}
TAG POS=1 TYPE=PRE ATTR=* EXTRACT=TXT
TAB T=1
TAB CLOSEALLOTHERS
TAG POS=1 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}
WAIT SECONDS=2
TAG POS=1 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=4
TAG POS=16 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL16}}
WAIT SECONDS=5
TAG POS=2 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}
WAIT SECONDS=2
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=5
TAG POS=1 TYPE=A ATTR=TXT:Create<SP>ad
WAIT SECONDS=5
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:FinalUrls CONTENT={{!COL6}}
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart1 CONTENT={{!COL7}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart2 CONTENT={{!COL8}}
WAIT SECONDS=1
TAG POS=1 TYPE=TEXTAREA ATTR=NAME:Ad.ExpandedTextAd.AdDescription CONTENT={{!COL11}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path1 CONTENT={{!COL9}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path2 CONTENT={{!COL10}}
WAIT SECONDS=1
TAG POS=11 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=2
TAG POS=2 TYPE=A ATTR=TXT:Create<SP>ad
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:FinalUrls CONTENT={{!COL6}}
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart1 CONTENT={{!COL7}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart2 CONTENT={{!COL8}}
WAIT SECONDS=1
TAG POS=1 TYPE=TEXTAREA ATTR=NAME:Ad.ExpandedTextAd.AdDescription CONTENT={{!COL11}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path1 CONTENT={{!COL9}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path2 CONTENT={{!COL10}}
WAIT SECONDS=1
TAG POS=11 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
TAG POS=1 TYPE=SELECT ATTR=NAME:Settings.BiddingScheme.Type CONTENT=%ManualCpc
TAG POS=26 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL12}}
WAIT SECONDS=2
TAG POS=27 TYPE=INPUT:TEXT ATTR=* CONTENT=9.00
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:Ad<SP>groupBidEstimated<SP>monthly<SP>clicksEstimated<SP>mon*
TAG POS=1 TYPE=A ATTR=TXT:Advanced<SP>campaign<SP>settings
TAG POS=1 TYPE=A ATTR=TXT:Device
TAG POS=35 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL13}}
TAG POS=4 TYPE=SELECT ATTR=TXT:Increase<SP>byDecrease<SP>by CONTENT=%-1
TAG POS=36 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL14}}
WAIT SECONDS=1
TAG POS=1 TYPE=A ATTR=TXT:Ad<SP>distribution
WAIT SECONDS=1
TAG POS=2 TYPE=INPUT:RADIO ATTR=NAME:SyndicationType
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:×
WAIT SECONDS=5

For empty Cells in your '.CSV', usually '!ERRORIGNORE' is enough as "CONTENT=""" (= nothing) will usually do nothing on most Sites...

If that's not "good enough", then you can use 'EVAL()' to EVALuate the Content of your Cell and to spit out a "1"/"0" then "16"/"0" etc for example to reuse for 'POS=n' ('POS=0' won't do anything...!), or a "-1"/"+1" for your DDLB, or even a "4"/"0" or "5"/"0" for the 'WAIT' Statements in the Block you want to "mute" if you don't want your Script to wait unnecessarily for the 'WAIT' Statements...
For the 'TAG' Statements in the part that you want to mute, you can even very probably only need to handle the first one with "1"/"0" and then base the next ones using Relative Positioning, anything relative to an Anchor with 'POS=0' that cannot be found won't be found or executed either...

I've explained the "Principle" for Conditional Behaviour in pure '.iim' in the following Thread, with a List of Relevant Threads...:
- Workarounds for Conditional Logic in Macro Code

Then I don't really understand your last Qt about the 2-10-100 Links..., or I can't locate that part in your Full Script...
If you are looking for one specific Link among those say 100 Links, then again you can use 'EVAL()' with your "Requirements" to spit out any Result that you can reuse for 'POS=n' or some Attribute(s) for that specific Link... Or if your Link will be the only one (or the first one) containing one specific Keyword for example, then some Wildcard(s) on the 'TXT' Attribute often "do(es) the Trick"...
- (F)CIM = (Full) Config Info Missing: iMacros + Browser + OS with all 3 Versions...
- I usually don't even read the Question if that (required) Info is not mentioned...
- Script & URL usually help a lot for a more "educated" Help...
chivracq
 
Posts: 6474
Joined: Sat Apr 13, 2013 6:07 am
Location: Amsterdam (NL)

Re: How to ignore or change a field if column is empty

by babarali124 on Thu Nov 23, 2017 6:11 am

Hi, Thanks for your help sir.

For empty Cells in your '.CSV', usually '!ERRORIGNORE' is enough as "CONTENT=""" (= nothing) will usually do nothing on most Sites...


Sir, I want to make the script to not click a button if there is no content in for example column3 on the csv file. How do i do that ? I know if column is empty it will consider it as content="" , I want to do if cloumn3 is empty then do not click the button.


If that's not "good enough", then you can use 'EVAL()' to EVALuate the Content of your Cell and to spit out a "1"/"0" then "16"/"0" etc for example to reuse for 'POS=n' ('POS=0' won't do anything...!), or a "-1"/"+1" for your DDLB, or even a "4"/"0" or "5"/"0" for the 'WAIT' Statements in the Block you want to "mute" if you don't want your Script to wait unnecessarily for the 'WAIT' Statements...


I really couldnt understand this at all, as I am really really new to imacros. Can you guide me through some of your code explaining how eval works or some link where it is explained ?
babarali124
 
Posts: 17
Joined: Sat Jul 15, 2017 9:24 pm

Re: How to ignore or change a field if column is empty

by chivracq on Thu Nov 23, 2017 6:46 am

babarali124 wrote:Hi, Thanks for your help sir.

For empty Cells in your '.CSV', usually '!ERRORIGNORE' is enough as "CONTENT=""" (= nothing) will usually do nothing on most Sites...

Sir, I want to make the script to not click a button if there is no content in for example column3 on the csv file. How do i do that ? I know if column is empty it will consider it as content="" , I want to do if cloumn3 is empty then do not click the button.

If that's not "good enough", then you can use 'EVAL()' to EVALuate the Content of your Cell and to spit out a "1"/"0" then "16"/"0" etc for example to reuse for 'POS=n' ('POS=0' won't do anything...!), or a "-1"/"+1" for your DDLB, or even a "4"/"0" or "5"/"0" for the 'WAIT' Statements in the Block you want to "mute" if you don't want your Script to wait unnecessarily for the 'WAIT' Statements...

I really couldnt understand this at all, as I am really really new to imacros. Can you guide me through some of your code explaining how eval works or some link where it is explained ?

Hum, you can drop the "Sir"...! :wink:

OK, here is an Example applied to your Col_16 being empty, for the 1st 'TAG' Statement of your Block...
This is your original Code:
Code: Select all
TAG POS=1 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=4
TAG POS=16 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL16}}
WAIT SECONDS=5
TAG POS=2 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}

=> With a Check on your Col_16 with 'EVAL()', that would give (for the Click on the 'BUTTON')...:
Code: Select all
SET Check_COL_16 EVAL("var c16='{{!COL16}}'; var z; if(c16==''){z=0;} else{z=1;}; z;")
SET !TIMEOUT_STEP {{Check_COL_16}}
SET !ERRORIGNORE YES
TAG POS={{Check_COL_16}} TYPE=INPUT:BUTTON ATTR=*
'... etc...
WAIT SECONDS=4
TAG POS=16 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL16}}
WAIT SECONDS=5
TAG POS=2 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}

And you do the same for the 2 other 'TAG' Statements or you make them Relative to the first one like I already mentioned...
(And I even made your '!TIMEOUT_STEP' dynamic, there is no need for your Script to wait 6 sec for some 'POS=0' Element that does not exist...!)
- (F)CIM = (Full) Config Info Missing: iMacros + Browser + OS with all 3 Versions...
- I usually don't even read the Question if that (required) Info is not mentioned...
- Script & URL usually help a lot for a more "educated" Help...
chivracq
 
Posts: 6474
Joined: Sat Apr 13, 2013 6:07 am
Location: Amsterdam (NL)

Re: How to ignore or change a field if column is empty

by babarali124 on Thu Nov 23, 2017 11:23 am

Thanks alot, I didnt knew we could use if else in imacros. Everywhere i read told me no option to use if else. I completely understood the logic you just wrote, so if the column has value the variable will be equal to 1 which will then be equal to TAG POS else will be 0 and there is no 0 TAG POS so wont do anything. Brilliant. I learned new things today.. Thanks alot.. But I will keep coming back for more :D and I know you will help me out as always...
babarali124
 
Posts: 17
Joined: Sat Jul 15, 2017 9:24 pm

Re: How to ignore or change a field if column is empty

by chivracq on Thu Nov 23, 2017 12:09 pm

babarali124 wrote:Thanks alot, I didnt knew we could use if else in imacros. Everywhere i read told me no option to use if else. I completely understood the logic you just wrote, so if the column has value the variable will be equal to 1 which will then be equal to TAG POS else will be 0 and there is no 0 TAG POS so wont do anything. Brilliant. I learned new things today.. Thanks alot.. But I will keep coming back for more :D and I know you will help me out as always...

Yep, very good then...! :D

Well, about "Everywhere i read told me no option to use if else. [...] Brilliant. I learned new things today.", that's why I referred you in my previous Post to the Thread where I explained my "Method" and the different Techniques that I use, about 4 years ago already now for the first time...:
I've explained the "Principle" for Conditional Behaviour in pure '.iim' in the following Thread, with a List of Relevant Threads...:
- Workarounds for Conditional Logic in Macro Code

And for maybe 3 years, I was probably the only one using this Method as I "developed" it to avoid using '.js' Scripts which was/is the "Standard" way for Conditional Logic in a Script, but as I guess I've been quite active on the Forum answering Threads since I joined in 2013, I now see since maybe 1 year more and more Users using it as well as a good Alternative to '.js' Scripts... which btw are only supported on FF, while my Method works in all 4 Browsers supported by iMacros as it simply makes a "clever" Use of the 'EVAL()' Command by going back to the "Roots" of Computing by converting 'YES/NO' or 'Black/White' or 'Click/Don't click' or 'Wait/Don't wait' to a trivial '1/0', ah-ah...! :twisted:

You could post your final Script btw, after you've modified your original one to include all the Changes you wanted to implement... Always useful for other Users who might need more than the one simple Example I gave you... :idea:
- (F)CIM = (Full) Config Info Missing: iMacros + Browser + OS with all 3 Versions...
- I usually don't even read the Question if that (required) Info is not mentioned...
- Script & URL usually help a lot for a more "educated" Help...
chivracq
 
Posts: 6474
Joined: Sat Apr 13, 2013 6:07 am
Location: Amsterdam (NL)

Re: How to ignore or change a field if column is empty

by babarali124 on Thu Nov 23, 2017 1:40 pm

Yeh, this approach is awesome. Else I would have to go and learn some javascript first in order to use if else statements. And yes, I am sharing my script here, as its good to share the knowledge. I used the same logic of other buttons where I thought were required , after trying and editing for several times I have finally completed this script.

Below the is complete code

Code: Select all
VERSION BUILD=9030808 RECORDER=FX
TAB T=1
SET !ERRORIGNORE YES
SET !EXTRACT_TEST_POPUP NO
SET !TIMEOUT_PAGE 15
SET !TIMEOUT_STEP 0
SET !DATASOURCE testing.csv
SET !LOOP 2
SET !DATASOURCE_LINE {{!loop}}
TAG POS=1 TYPE=INPUT:BUTTON ATTR=ID:CampaignsGrid_create
WAIT SECONDS=3
TAG POS=1 TYPE=SPAN ATTR=TXT:Visits<SP>to<SP>my<SP>website
WAIT SECONDS=5
TAG POS=6 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL1}}
WAIT SECONDS=5
TAG POS=7 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL2}}
TAG POS=3 TYPE=INPUT:RADIO ATTR=NAME:targetOptions
TAG POS=10 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL3}}
TAG POS=1 TYPE=SPAN ATTR=TABINDEX:0&&ROLE:button&&ARIA-LABEL:Enter<SP>a<SP>location<SP>to<SP>target<SP>or<SP>exclude&&CLASS:searchbox-searchbutton<SP>filter_search_icon_small<SP>clickable&&TXT:
WAIT SECONDS=3
TAG POS=1 TYPE=A ATTR=TXT:Target
WAIT SECONDS=3
TAG POS=5 TYPE=INPUT:CHECKBOX ATTR=* CONTENT=NO
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=3
TAG POS=14 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL4}}
TAG POS=15 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL5}}
TAB OPEN
TAB T=2
URL GOTO={{!COL15}}
TAG POS=1 TYPE=PRE ATTR=* EXTRACT=TXT
SET Last_Row_Nb EVAL("'{{!EXTRACT}}'.split('###').length-2;")
TAB T=1
TAB CLOSEALLOTHERS
TAG POS=1 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}
WAIT SECONDS=2
SET Check_COL_16 EVAL("var c16='{{!COL16}}'; var z; if(c16==''){z=0;} else{z=1;}; z;")
SET !TIMEOUT_STEP {{Check_COL_16}}
SET !ERRORIGNORE YES
TAG POS={{Check_COL_16}} TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=4
TAG POS=16 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL16}}
WAIT SECONDS=5
TAG POS=2 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}
WAIT SECONDS=2
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=5
TAG POS=1 TYPE=A ATTR=TXT:Create<SP>ad
WAIT SECONDS=5
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:FinalUrls CONTENT={{!COL6}}
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart1 CONTENT={{!COL7}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart2 CONTENT={{!COL8}}
WAIT SECONDS=1
TAG POS=1 TYPE=TEXTAREA ATTR=NAME:Ad.ExpandedTextAd.AdDescription CONTENT={{!COL11}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path1 CONTENT={{!COL9}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path2 CONTENT={{!COL10}}
WAIT SECONDS=1
SET Check_COL_18 EVAL("var c18='{{!COL18}}'; var j; if(c18==''){j=0;} else{j=11;}; j;")
SET !TIMEOUT_STEP {{Check_COL_18}}
SET !ERRORIGNORE YES
TAG POS={{Check_COL_18}} TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=2
TAG POS=2 TYPE=A ATTR=TXT:Create<SP>ad
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:FinalUrls CONTENT={{!COL6}}
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart1 CONTENT={{!COL7}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart2 CONTENT={{!COL8}}
WAIT SECONDS=1
TAG POS=1 TYPE=TEXTAREA ATTR=NAME:Ad.ExpandedTextAd.AdDescription CONTENT={{!COL11}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path1 CONTENT={{!COL9}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path2 CONTENT={{!COL10}}
WAIT SECONDS=1
TAG POS=11 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
TAG POS=1 TYPE=SELECT ATTR=NAME:Settings.BiddingScheme.Type CONTENT=%ManualCpc
TAG POS=26 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL12}}
WAIT SECONDS=2
SET Check_COL_27 EVAL("var c27='{{!COL19}}'; var p; if(c27==''){p=0;} else{p=27;}; p;")
SET !TIMEOUT_STEP {{Check_COL_27}}
SET !ERRORIGNORE YES
TAG POS={{Check_COL_27}} TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL19}}
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:Ad<SP>groupBidEstimated<SP>monthly<SP>clicksEstimated<SP>mon*
TAG POS=1 TYPE=A ATTR=TXT:Advanced<SP>campaign<SP>settings
TAG POS=1 TYPE=A ATTR=TXT:Device
WAIT SECONDS=1
TAG POS=1 TYPE=A ATTR=TXT:Ad<SP>distribution
WAIT SECONDS=1
TAG POS=2 TYPE=INPUT:RADIO ATTR=NAME:SyndicationType
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:×
WAIT SECONDS=5
babarali124
 
Posts: 17
Joined: Sat Jul 15, 2017 9:24 pm

Re: How to ignore or change a field if column is empty

by chivracq on Thu Nov 23, 2017 4:04 pm

babarali124 wrote:Yeh, this approach is awesome. Else I would have to go and learn some javascript first in order to use if else statements. And yes, I am sharing my script here, as its good to share the knowledge. I used the same logic of other buttons where I thought were required , after trying and editing for several times I have finally completed this script.

Below the is complete code

Code: Select all
VERSION BUILD=9030808 RECORDER=FX
TAB T=1
SET !ERRORIGNORE YES
SET !EXTRACT_TEST_POPUP NO
SET !TIMEOUT_PAGE 15
SET !TIMEOUT_STEP 0
SET !DATASOURCE testing.csv
SET !LOOP 2
SET !DATASOURCE_LINE {{!loop}}
TAG POS=1 TYPE=INPUT:BUTTON ATTR=ID:CampaignsGrid_create
WAIT SECONDS=3
TAG POS=1 TYPE=SPAN ATTR=TXT:Visits<SP>to<SP>my<SP>website
WAIT SECONDS=5
TAG POS=6 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL1}}
WAIT SECONDS=5
TAG POS=7 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL2}}
TAG POS=3 TYPE=INPUT:RADIO ATTR=NAME:targetOptions
TAG POS=10 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL3}}
TAG POS=1 TYPE=SPAN ATTR=TABINDEX:0&&ROLE:button&&ARIA-LABEL:Enter<SP>a<SP>location<SP>to<SP>target<SP>or<SP>exclude&&CLASS:searchbox-searchbutton<SP>filter_search_icon_small<SP>clickable&&TXT:
WAIT SECONDS=3
TAG POS=1 TYPE=A ATTR=TXT:Target
WAIT SECONDS=3
TAG POS=5 TYPE=INPUT:CHECKBOX ATTR=* CONTENT=NO
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=3
TAG POS=14 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL4}}
TAG POS=15 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL5}}
TAB OPEN
TAB T=2
URL GOTO={{!COL15}}
TAG POS=1 TYPE=PRE ATTR=* EXTRACT=TXT
SET Last_Row_Nb EVAL("'{{!EXTRACT}}'.split('###').length-2;")
TAB T=1
TAB CLOSEALLOTHERS
TAG POS=1 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}
WAIT SECONDS=2
SET Check_COL_16 EVAL("var c16='{{!COL16}}'; var z; if(c16==''){z=0;} else{z=1;}; z;")
SET !TIMEOUT_STEP {{Check_COL_16}}
SET !ERRORIGNORE YES
TAG POS={{Check_COL_16}} TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=4
TAG POS=16 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL16}}
WAIT SECONDS=5
TAG POS=2 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}
WAIT SECONDS=2
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=5
TAG POS=1 TYPE=A ATTR=TXT:Create<SP>ad
WAIT SECONDS=5
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:FinalUrls CONTENT={{!COL6}}
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart1 CONTENT={{!COL7}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart2 CONTENT={{!COL8}}
WAIT SECONDS=1
TAG POS=1 TYPE=TEXTAREA ATTR=NAME:Ad.ExpandedTextAd.AdDescription CONTENT={{!COL11}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path1 CONTENT={{!COL9}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path2 CONTENT={{!COL10}}
WAIT SECONDS=1
SET Check_COL_18 EVAL("var c18='{{!COL18}}'; var j; if(c18==''){j=0;} else{j=11;}; j;")
SET !TIMEOUT_STEP {{Check_COL_18}}
SET !ERRORIGNORE YES
TAG POS={{Check_COL_18}} TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=2
TAG POS=2 TYPE=A ATTR=TXT:Create<SP>ad
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:FinalUrls CONTENT={{!COL6}}
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart1 CONTENT={{!COL7}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.TitlePart2 CONTENT={{!COL8}}
WAIT SECONDS=1
TAG POS=1 TYPE=TEXTAREA ATTR=NAME:Ad.ExpandedTextAd.AdDescription CONTENT={{!COL11}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path1 CONTENT={{!COL9}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:Ad.ExpandedTextAd.Path2 CONTENT={{!COL10}}
WAIT SECONDS=1
TAG POS=11 TYPE=INPUT:BUTTON ATTR=*
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save<SP>&<SP>go<SP>to<SP>the<SP>next<SP>step
TAG POS=1 TYPE=SELECT ATTR=NAME:Settings.BiddingScheme.Type CONTENT=%ManualCpc
TAG POS=26 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL12}}
WAIT SECONDS=2
SET Check_COL_27 EVAL("var c27='{{!COL19}}'; var p; if(c27==''){p=0;} else{p=27;}; p;")
SET !TIMEOUT_STEP {{Check_COL_27}}
SET !ERRORIGNORE YES
TAG POS={{Check_COL_27}} TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL19}}
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:Ad<SP>groupBidEstimated<SP>monthly<SP>clicksEstimated<SP>mon*
TAG POS=1 TYPE=A ATTR=TXT:Advanced<SP>campaign<SP>settings
TAG POS=1 TYPE=A ATTR=TXT:Device
WAIT SECONDS=1
TAG POS=1 TYPE=A ATTR=TXT:Ad<SP>distribution
WAIT SECONDS=1
TAG POS=2 TYPE=INPUT:RADIO ATTR=NAME:SyndicationType
WAIT SECONDS=5
TAG POS=1 TYPE=BUTTON ATTR=TXT:Save
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:×
WAIT SECONDS=5

Yep, very good...

So I see that no further Action was needed for the 2 other 'TAG' Statements you wanted to "mute" as well after the Conditional Click on the Button for the Col_16 Section as you left them "untouched"...:
Code: Select all
TAG POS=16 TYPE=INPUT:TEXT ATTR=* CONTENT={{!COL16}}
TAG POS=2 TYPE=TEXTAREA ATTR=CLASS:keyword-textarea*form-control* CONTENT={{!EXTRACT}}

I reckon those 2 Statements do nothing then if the previous Button was not clicked...

Like I mentioned, you currently have 2 hard-coded 'WAIT' Statements in-between that you might want to (Conditionally) shorten when that Section is muted... => Using the same Method with 'EVAL()', you then spit out "5"/"0" instead of "1"/"0"... Or you multiply the "1"/"0" Result of 'Check_COL_16' by 5: 5x1=5 and 5x0=0...

And you might want to restore '!TIMEOUT_STEP' to "=1" at the end of that Section for the Actions after it or it remains "=0" for the rest of the Script until you change it again... It should work as well with "=0" for the whole Script, but sometimes, the "=1" or Default "=6" adds a little bit of "Reliability" for slow Connections or if the Page sometimes takes a little longer to react, especially for Fields that dynamically appear or get activated after some previous Action like the Click on your Button, and especially with '!ERRORIGNORE' activated.
The '!ERRORIGNORE' btw is required for the case 'POS=0' and the 2 Statements after it that might not be present on the Page but you can restore it to "=NO" at the end of the Section if you want... (Most of my Scripts actually run with '!ERRORIGNORE' from the beginning till the end...)

:arrow: You might have a little Mistake with your 'Check_COL_27' which actually checks the Content of '!COL19' and not '!COL27' like one would expect...
=> Hence the "good Practice" to give Descriptive and Explanatory Names to your Vars, instead of constantly using/reusing '!VAR1' / '!VAR2' etc... I would have never noticed from a quick Scan on your Script if you had called all your Vars '!VARn'... :wink:

Hum..., and I don't know what this Statement is doing in your Script... :? :
Code: Select all
SET Last_Row_Nb EVAL("'{{!EXTRACT}}'.split('###').length-2;")

It is from some other Thread where I had posted a Script to compute the Row_Nb of the last Row in a '.CSV' but it has no Use in your Script and you don't reuse that 'Last_Row_Nb' in your Script anyway...
- (F)CIM = (Full) Config Info Missing: iMacros + Browser + OS with all 3 Versions...
- I usually don't even read the Question if that (required) Info is not mentioned...
- Script & URL usually help a lot for a more "educated" Help...
chivracq
 
Posts: 6474
Joined: Sat Apr 13, 2013 6:07 am
Location: Amsterdam (NL)

Re: How to ignore or change a field if column is empty

by babarali124 on Sat Nov 25, 2017 12:45 pm

Hi,
Yes I know, I could use the eval function for the wait statement as well, but I didn't feel like using it, I was OK with the working so just ignored it.
As for the COL27 , i deliberately have left it as 27 to identify the tag post on the script, but the csv file has it has column 19 data. I will still recheck it though.

Code: Select all
SET Last_Row_Nb EVAL("'{{!EXTRACT}}'.split('###').length-2;")


Yeh this code is from the previous thread which i forgot to remove from the script. Will do it now.. Thanks alot :)
babarali124
 
Posts: 17
Joined: Sat Jul 15, 2017 9:24 pm

Re: How to ignore or change a field if column is empty

by chivracq on Sat Nov 25, 2017 1:41 pm

babarali124 wrote:Hi,
Yes I know, I could use the eval function for the wait statement as well, but I didn't feel like using it, I was OK with the working so just ignored it.
As for the COL27 , i deliberately have left it as 27 to identify the tag post on the script, but the csv file has it has column 19 data. I will still recheck it though.

Code: Select all
SET Last_Row_Nb EVAL("'{{!EXTRACT}}'.split('###').length-2;")


Yeh this code is from the previous thread which i forgot to remove from the script. Will do it now.. Thanks alot :)

OK... :wink:
- (F)CIM = (Full) Config Info Missing: iMacros + Browser + OS with all 3 Versions...
- I usually don't even read the Question if that (required) Info is not mentioned...
- Script & URL usually help a lot for a more "educated" Help...
chivracq
 
Posts: 6474
Joined: Sat Apr 13, 2013 6:07 am
Location: Amsterdam (NL)


Return to iMacros for Firefox

Who is online

Users browsing this forum: No registered users and 9 guests

-->