Tom, Tech Support wrote:If someone can post or
submit a complete runnable macro that reproduces the problem, then the QA and devs team can investigate this issue further.
Firefox 49.0.2 (multiprocess windows disabled)
iMacros 9.0.3
Windows 7
I am having this problem as well and it began around the end of September or beginning of October when I updated iMacros, I believe. However it may have started as early as the August update for Firefox version 48. I can't confirm that at this moment. This macro worked fine before and has for the whole year.
For me, I get the "mm is undefined" error after the code changes to a new tab or back to a previous tab. Once the new tab is loaded it is like none of the controls on the page are visible. I first started receiving this error in the "'Open the Map Search Page and Load the Map" section. That is the first tab change and when it would switch over to the newly loaded map page the macro could no longer locate the drop down box used to select a saved map configuration and would return the mm undefined error. I messed around for a while and eventually found that (in this case) adding the "FRAME F=0" code fixed that issue.
Once the code selects the map configuration it selects the OK button, that closes that tab and returns to the original page. Now I am receiving the mm undefined error on the first line of code that attempts to interact with a field after the tab change "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:CriteriaPage ATTR=ID:br1 CONTENT=2". I tried defining the frame to be selected but those lines of code also receive the mm undefined and I tried multiple frame names and index numbers.
I have checked the validity of the field reference "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:CriteriaPage ATTR=ID:br1 CONTENT=2" several times by recording new macros to make sure that the code is correct, and it is. In fact if I write a new macro on the page that doesn't change tabs and uses the same references in my code below, it works, as long as the tab isn't changed.
Basically, once the code changes tabs it no longer can see any of the controls on the page. I would like to re-iterate, this code worked before and for a number of times (once a month for most of the year).
So while writing this I decided to try rolling back my iMacros version to 8.9.7 and that has completely fixed the problem. So this is clearly a bug. The page that this runs on cannot be accessed without a login so if and admin would like to gain access to the page in order to test the code I am more than willing to set that up but I will need to be contacted by PM so that I can temporarily change my password and give access to an authorized individual for a fixed amount of time.
I'm more than happy to help with this so please contact me so I can do so however you see fit.
Would forcing e10s to be enabled make any difference?
Code: Select all
VERSION BUILD=8961227 RECORDER=FX
TAB T=1
URL GOTO=http://pro.themls.com/membersonly/All_Searches/main_frame.cfm?search_type=SFR&search_kind=listing&load_def_hotsheet=0&load_def_search=0&search_title=&MNum=&PType=&theButton=clear&cma_title=&custom_criteria_title=&streetnum1=&sel_stnum=0&street=&cityname=&state_abbrv=&zip_code=&autoclicknow=no&screenX=1112&screenY=983&blnIPad=NO&blnIPad5=&IsSpoof=
SET !DATASOURCE "D:\\Desktop\\Real Estate\\Searches\\Median Price Macro\\Area_List.csv"
SET !DATASOURCE_COLUMNS 2
SET !LOOP 1
SET !DATASOURCE_LINE {{!LOOP}}
'Select Sold Status and Enter the Sold After Date
FRAME NAME="frameMiddle"
TAG POS=5 TYPE=INPUT:CHECKBOX FORM=NAME:CriteriaPage ATTR=NAME:mystatus CONTENT=YES
SET !VAR1 EVAL("var dt = new Date(); var month = dt.getMonth()+1; var day = dt.getDate(); var year = dt.getFullYear()-1; month + '/' + day + '/' + year;")
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:CriteriaPage ATTR=ID:sd1 CONTENT={{!VAR1}}
'Open the Map Search Page and Load the Map
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:CriteriaPage ATTR=NAME:mapsearch_button1
TAB T=2
FRAME F=0
WAIT SECONDS=2
TAG POS=1 TYPE=SELECT ATTR=NAME:ddlSavedMaps CONTENT=%{{!COL2}}
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:BUTTON ATTR=ID:btnEnter
'Enter the 2 Bedroom Count
TAB T=1
WAIT SECONDS=1
'FRAME NAME="frameMiddle"
'FRAME F=0
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:CriteriaPage ATTR=ID:br1 CONTENT=2
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:CriteriaPage ATTR=ID:br2 CONTENT=2
'Count the Results
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:CriteriaPage ATTR=NAME:sub1
WAIT SECONDS=3
'turn errors off if in case count = 0
SET !TIMEOUT_STEP 1
SET !ERRORIGNORE YES
FRAME NAME="frameTop"
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:goForm ATTR=NAME:Go_Button
TAB T=2
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:Toggle<SP>Dropdown
TAG POS=1 TYPE=A ATTR=TXT:Select<SP>All
WAIT SECONDS=2
TAG POS=1 TYPE=A ATTR=TXT:Export
WAIT SECONDS=1
TAG POS=1 TYPE=SELECT FORM=NAME:exportForm ATTR=ID:report-select CONTENT=%object:110
WAIT SECONDS=1
TAG POS=2 TYPE=INPUT:RADIO FORM=NAME:exportForm ATTR=NAME:fileFormats
WAIT SECONDS=1
'replace the underscore in map name because filename cannot contain underscores
SET !VAR1 EVAL("var s=\"{{!COL1}}\"; s.replace(/_/g,'<SP>');")
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:exportForm ATTR=NAME:fileNameInput CONTENT={{!VAR1}}-2<SP>Beds
WAIT SECONDS=2
TAG POS=1 TYPE=BUTTON ATTR=TXT:Export
WAIT SECONDS=3
TAB T=1
TAB CLOSEALLOTHERS
SET !ERRORIGNORE NO
SET !TIMEOUT_STEP 6
'Enter the 3 Bedroom Count
TAB T=1
WAIT SECONDS=1
FRAME NAME="frameMiddle"
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:CriteriaPage ATTR=ID:br1 CONTENT=3
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:CriteriaPage ATTR=ID:br2 CONTENT=3
'Count the Results
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:CriteriaPage ATTR=NAME:sub1
WAIT SECONDS=3
'turn errors off if in case count = 0
SET !TIMEOUT_STEP 1
SET !ERRORIGNORE YES
FRAME NAME="frameTop"
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:goForm ATTR=NAME:Go_Button
TAB T=2
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:Toggle<SP>Dropdown
TAG POS=1 TYPE=A ATTR=TXT:Select<SP>All
WAIT SECONDS=2
TAG POS=1 TYPE=A ATTR=TXT:Export
WAIT SECONDS=1
TAG POS=1 TYPE=SELECT FORM=NAME:exportForm ATTR=ID:report-select CONTENT=%object:110
WAIT SECONDS=1
TAG POS=2 TYPE=INPUT:RADIO FORM=NAME:exportForm ATTR=NAME:fileFormats
WAIT SECONDS=1
'replace the underscore in map name because filename cannot contain underscores
SET !VAR1 EVAL("var s=\"{{!COL1}}\"; s.replace(/_/g,'<SP>');")
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:exportForm ATTR=NAME:fileNameInput CONTENT={{!VAR1}}-3<SP>Beds
WAIT SECONDS=2
TAG POS=1 TYPE=BUTTON ATTR=TXT:Export
WAIT SECONDS=3
TAB T=1
TAB CLOSEALLOTHERS
SET !ERRORIGNORE NO
SET !TIMEOUT_STEP 6
'Enter the 4 Bedroom Count
TAB T=1
WAIT SECONDS=1
FRAME NAME="frameMiddle"
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:CriteriaPage ATTR=ID:br1 CONTENT=4
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:CriteriaPage ATTR=ID:br2 CONTENT=4
'Count the Results
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:CriteriaPage ATTR=NAME:sub1
WAIT SECONDS=3
SET !TIMEOUT_STEP 1
SET !ERRORIGNORE YES
FRAME NAME="frameTop"
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:goForm ATTR=NAME:Go_Button
TAB T=2
WAIT SECONDS=3
TAG POS=1 TYPE=BUTTON ATTR=TXT:Toggle<SP>Dropdown
TAG POS=1 TYPE=A ATTR=TXT:Select<SP>All
WAIT SECONDS=2
TAG POS=1 TYPE=A ATTR=TXT:Export
WAIT SECONDS=1
TAG POS=1 TYPE=SELECT FORM=NAME:exportForm ATTR=ID:report-select CONTENT=%object:110
WAIT SECONDS=1
TAG POS=2 TYPE=INPUT:RADIO FORM=NAME:exportForm ATTR=NAME:fileFormats
WAIT SECONDS=1
'replace the underscore in map name because filename cannot contain underscores
SET !VAR1 EVAL("var s=\"{{!COL1}}\"; s.replace(/_/g,'<SP>');")
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:exportForm ATTR=NAME:fileNameInput CONTENT={{!VAR1}}-4<SP>Beds
WAIT SECONDS=2
TAG POS=1 TYPE=BUTTON ATTR=TXT:Export
WAIT SECONDS=3
TAB T=1
TAB CLOSEALLOTHERS
SET !ERRORIGNORE NO
SET !TIMEOUT_STEP 6