title: class 'pywintypes.com_error' for running a SAP transaction
body: <p>I am trying to use a script in Python (Spyder) to open SAP and run a transaction. to acheive this goal I recorded SAP vbscript and with couple of tweaks for Python usage it works fine until it gets to the middle of SAP script and it triggers the <code>class 'pywintypes.com_error'</code> ! 
  The code I use to do this task is following. Any help on how to get around this issue is highly appreciated:</p>
  
  <pre><code>def saplogin():
  
      try:
  
          path = r"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe"
          subprocess.Popen(path)
          time.sleep(2)
  
          SapGuiAuto = win32com.client.GetObject('SAPGUI')
          if not type(SapGuiAuto) == win32com.client.CDispatch:
              return
  
          application = SapGuiAuto.GetScriptingEngine
          if not type(application) == win32com.client.CDispatch:
              SapGuiAuto = None
              return
          connection = application.OpenConnection("SAP")
  
          if not type(connection) == win32com.client.CDispatch:
              application = None
              SapGuiAuto = None
              return
  
          session = connection.Children(0)
          if not type(session) == win32com.client.CDispatch:
              connection = None
              application = None
              SapGuiAuto = None
              return
  
          session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "Uname"
          session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "Pass"
          session.findById("wnd[0]").sendVKey(0)
  
  
  
  
          session.findById("wnd[0]").resizeWorkingPane (98,16,False)
          session.findById("wnd[0]/tbar[0]/okcd").text = "S032"
          session.findById("wnd[0]").sendVKey (0)
          session.findById("wnd[0]/usr/radP_MATL").select
          session.findById("wnd[0]/usr/chkP_LTPC").selected = False
          session.findById("wnd[0]/usr/ctxtS_FEVOR-LOW").text = "86A"
          session.findById("wnd[0]/usr/radP_SORT3").setFocus
          session.findById("wnd[0]/usr/radP_SORT3").select
          session.findById("wnd[0]/tbar[1]/btn[8]").press
          session.findById("wnd[0]/mbar/menu[0]/menu[1]/menu[2]").select
          session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").select
          session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").setFocus
          session.findById("wnd[1]/tbar[0]/btn[0]").press
          session.findById("wnd[1]/usr/ctxtDY_PATH").text = "D:\PowerBIKhodam\WIP_Status\86A"
          session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "S32.xls"
          session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 12
          session.findById("wnd[1]/tbar[0]/btn[11]").press
          session.findById("wnd[0]/tbar[0]/btn[3]").press
          session.findById("wnd[0]/tbar[0]/btn[3]").press
  
      except:
          print(sys.exc_info()[0])
      finally:
          session = None
          connection = None
          application = None
          SapGuiAuto = None
  
  saplogin()
  </code></pre>