import importlib.util,json,time
spec=importlib.util.spec_from_file_location('mu','C:/MCSJAgent/mcsj-user.py');m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m)
p='payment.client.fx.EFXPwpaycodePanel';e=m._proto
for n in range(100):
 st=m.agent18('FXSTATE'); panel=next(x for x in st['panels'] if x.get('panelClass')==p); c=panel['controls']
 upp=[x for x in c if x.get('class')=='misc.components.fx.EFXUpperMaskField']; code=upp[0].get('text','').strip()
 if code=='CLK':
  classes=('misc.components.fx.EFXUpperMaskField','misc.components.fx.EFXTextField','misc.components.fx.EFXRvAcctMaskField','misc.components.fx.EFXBaAcctMaskField','misc.components.fx.EFXFinAcctTypeComboBox','misc.components.fx.EFXComboBox')
  print(json.dumps({'steps':n,'controls':[{'class':x.get('class'),'text':x.get('text'),'disabled':x.get('disabled')} for x in c if x.get('class') in classes]},indent=2));break
 m.agent18('FXFIREBUTTON '+e(p)+' '+e('Previous')+' false');time.sleep(.06)
