如何使用SAP Gui脚本捕获文本?

2020-08-21 14:00发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) ...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用Python通过修改记录的脚本来自动执行SAP登录过程。
但是我遇到了问题。 我不知道如何提取在SAP上找到的文本数据。


我正在做的一个过程是逐行从Inbox中提取信息。
如何使用脚本捕获文本? (信息记录,供应商,材料等)


我试图记录大多数步骤,但是我不知道如何捕获.text字段。
记录没有指出该部分。

 session.findById(" wnd [0]")。resizeWorkingPane(184,30,0)session.findById(" wnd [0]/tbar [1]/btn [36]")。press()会话。  findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [0]/shell")。selectedNode =" 2"#选择收件箱

 session.findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [0]/shell")。selectedRows =" 0"#选择第一行
 session.findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [0]/shell")。selectionChanged()
 print(session.findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [0]/shell")。text)
#这东西打印出" SAPGUI.GridViewCtrl.1" ......
 session.findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [0]/shell")。pressToolbarButton(" DISP")
         session.findById(" wnd [0]/usr/tabsSO33_TAB1/tabpTAB1")。select()
         print(session.findById(" wnd [0]/usr/tabsSO33_TAB1/tabpTAB1")。text)

#这东西打印"文档内容" ......我需要获取(信息记录,供应商,材料等)


如果您查看SAP_Capture_3.png照片,我已经确定了外壳。 但是我无法获取它的文本数据...

 print(session.findByID(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [1]/shell" .. text)

上面的代码仅给我" SAP.HTMLControl.1" ...........我想要的内容。

请帮助我。

(83.5 kB)
7条回答
95年老男孩
2020-08-21 14:35
 def saplogin():#此函数将登录到SAP并执行T代码


     尝试:
         #####步骤A:打开SAP
         路径= r" C:\ Program Files(x86)\ SAP \ FrontEnd \ SAPgui \ saplogon.exe"
         subprocess.Popen(path)#这将打开SAP
         time.sleep(4)#故意打开应用程序的时间


         SapGuiAuto = win32com.client.GetObject('SAPGUI')
         如果不是,则键入(SapGuiAuto)== win32com.client.CDispatch:
             返回


         应用程序= SapGuiAuto.GetScriptingEngine
         如果不是type(application)== win32com.client.CDispatch:
             SapGuiAuto =无
             返回
         连接= application.OpenConnection(" XXXXXXXXXXXXXXXXXXX",True)


         如果不是type(connection)== win32com.client.CDispatch:
             应用=无
             SapGuiAuto =无
             返回


         会话= connection.Children(0)
         如果不是type(session)== win32com.client.CDispatch:
             连接=无
             应用=无
             SapGuiAuto =无
             返回
        
         #####步骤B:登录到您的帐户
         session.findById(" wnd [0]/usr/txtRSYST-BNAME")。text =" XXXXXXXXXX"#用户ID
         session.findById(" wnd [0]/usr/pwdRSYST-BCODE")。text =" XXXXXXXXXX"#密码
         session.findById(" wnd [0]")。sendVKey(0)
         session.findById(" wnd [0]")。sendVKey(0)#附加回车键以获取过去的法规遵从性味精
        
        
         #####步骤C:进入SAP Business Workplace
         session.findById(" wnd [0]")。sendVKey(36)#Ctrl + F12
        
         #####步骤D:选择收件箱
         session.findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [0]/shell")。selectedNode =" 2"
        
        
         #####步骤E:选择相关行
         session.findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [0]/shell")。selectedRows =" 0"
         session.findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [0]/shell")。selectionChanged()
         打印("测试1")
         print(session.findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [0]/shell" .text)
         打印("测试2")
         打印(session.findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [0]")。文本)
         打印("测试3,我需要此数据")
         打印(session.findByID(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [1]/shell")。文本)
         browser1 = session.findByID(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [1]/shell")。BrowserHandle
         HTMLDoc1 = browser1.Document
         打印("测试4我真的需要此数据")
         打印(HTMLDoc1.body.innerText)
        
         #####步骤F:尝试通过单击"显示"按钮获取数据
         session.findById(" wnd [0]/usr/cntlSINWP_CONTAINER/shellcont/shell/shellcont [1]/shell/shellcont [0]/shell")。pressToolbarButton(" DISP")
         session.findById(" wnd [0]/usr/tabsSO33_TAB1/tabpTAB1")。select()
         打印("测试5")
         打印(session.findById(" wnd [0]/usr/tabsSO33_TAB1/tabpTAB1")。text)
         打印("测试6")
         打印(session.findById(" wnd [0]/usr/tabsSO33_TAB1")。text)
         time.sleep(2)#故意延迟
         session.findById(" wnd [0]")。sendVKey(15)

     除:
         打印(sys.exc_info()[0])


     最后:
         会话=无
         连接=无
         应用=无
         SapGuiAuto =无
        
        
        
 saplogin()

 

下面是我得到的输出。
基本上,在"测试4"下,我什么都没得到

测试1

SAPGUI.GridViewCtrl.1

测试2

SAPGUI.CONTAINERCTRL.1

测试3我需要此数据

SAP.HTMLControl.1

测试4

我真的需要这些数据

测试5

文档。 内容

测试6

先生,请帮助我。

一周热门 更多>