#!/usr/bin/python from distutils.core import setup import py2exe import os, sys CurrentPath = os.path.dirname(sys.argv[0]) setup(windows=[str(CurrentPath) + '008.py'], options = { "py2exe":{"dll_excludes":["MSVCP90.dll"], "unbuffered": True}})
#!/usr/bin/python # -*- coding: UTF-8 -*- import wx import json from string import lower, replace class TextFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, 'Subject 7',size=(1000,600)) panel = wx.Panel(self, -1) def strf(text): result = text for c in ["-", "_", " "]: result = result.replace(c, "_") return result def strflocator(locator, page, type, alias, xpath): result = locator.replace('{{page}}', page).replace('{{type}}', type).replace('{{alias}}', alias).replace( '{{xpath}}', xpath) # print xpath # print '------------------------------------------------------------------------------' # print result # # print '------------------------------------------------------------------------------' output.AppendText(xpath+'\n') output.AppendText('*'*70+'\n') output.AppendText(result) output.AppendText('*' * 70+'\n') def process(event): output.Clear() str = cases.GetValue() # print str data = json.loads(str) # print str for case in data["cases"]: xpath_text = '//label[text()="{{xpath_text}}"]/../following-sibling::*//input' xpath_select = '//label[text()="{{xpath_select}}"]/../following-sibling::*//select' locator = 'page:{{page}};\ntype:{{type}};\nalias:{{alias}};\nxpath:{{xpath}};\n' if "text" in case: for field in case["text"]: xpath = xpath_text.replace('{{xpath_text}}',strf(field)) strflocator(locator, 'Common', 'text', strf(field), xpath) # Generate select field locator if "select" in case: for field in case["select"]: xpath = xpath_text.replace('{{xpath_select}}', strf(field)) strflocator(locator, 'Common', 'select', strf(field), xpath) str_default='''{ "cases":[ { "text":[ "Transaction Date", "Transaction Type" ], "select":[ "Processing Status" ] } ] }''' lCases = wx.StaticText(panel, -1, "Cases:") cases = wx.TextCtrl(panel, -1, str_default, style=wx.TE_MULTILINE) cases.SetInsertionPoint(0) lOutput = wx.StaticText(panel, -1, "Output:") output = wx.TextCtrl(panel, -1, "", style=wx.TE_MULTILINE) sizer = wx.GridBagSizer( 5,5 ) # sizer = wx.FlexGridSizer(cols=1, hgap=6, vgap=6) sizer.Add(lCases,pos=(0,0),span=(1,5),flag=wx.LEFT,border=6) sizer.Add(lOutput, pos=(0, 10), span=(1, 5), flag=wx.LEFT, border=6) sizer.Add(cases, pos=(1, 0), span=(20, 10), flag=wx.LEFT|wx.EXPAND, border=6) sizer.Add(output, pos=(1,10 ), span=(20, 10), flag=wx.LEFT|wx.EXPAND , border=6) # sizer.AddMany([lCases, cases, lOutput, output,button]) # sizer.fit(window) button = wx.Button(panel, -1, "Submit",size=(80,40)) # sizer.Add(button, pos=(21, 0), flag=wx.LEFT | wx.ALIGN_CENTER_HORIZONTAL, border=6) button.Bind(wx.EVT_BUTTON,process) sizer.AddGrowableRow(1) # sizer.AddGrowableRow(21) sizer.AddGrowableCol(1) sizer.AddGrowableCol(10) sizer2 = wx.BoxSizer(wx.VERTICAL) # sizer.Add(sizer, pos=(0, 0), span=(20, 5), flag=wx.LEFT, border=6) # sizer.Add(button, pos=(3, 0), span=(1, 1), flag=wx.LEFT, border=6) # sizer2.AddGrowableCol(1) # sizer2.AddGrowableRow(1) # sizer2.AddGrowableRow(20) sizer2.Add( sizer, wx.ALIGN_CENTER_HORIZONTAL, wx.BOTTOM|wx.EXPAND, 10 ) sizer2.Add(button,0, wx.ALIGN_CENTER, wx.ALIGN_TOP|wx.BOTTOM, 10) # sizer2=wx.BoxSizer(wx.VERTICAL) # sizer2,Add(button, proportion=0, flag=wx.EXPAND, border=0) panel.SetSizerAndFit(sizer2) panel.Center() # self.Centre(wx.BOTH) # panel.SetSizerAndFit(sizer2) if __name__ == '__main__': app = wx.App() frame = TextFrame() frame.SetMinSize((1000,600)) frame.Show() app.MainLoop()
浙公网安备 33010602011771号