def main(url, filename, postdata=None, record=False, rerecord=False, sleepfactor=1.0, browser='firefox', remote=None, local=None, diffcolor='0,255,0', screensize='1024x768', autorerecord=False, save_diff=False, his_mode=False): print "start time:%s..." % TestRunStartTime().get_start_time().strftime( '%Y-%m-%d %H:%M:%S') if postdata: if postdata == '-': postdata = sys.stdin.read() else: with open(postdata, 'r') as f: postdata = json.loads(f.read()) try: if remote: d = webdriver.Remote(remote, CAPABILITIES[browser]) else: d = DRIVERS[browser]() screensize = tuple(int(x) for x in screensize.split('x')) except KeyError: raise ValueError('Invalid browser %r; valid browsers are %r.' % (browser, DRIVERS.keys())) try: os.makedirs(filename) except: pass diffcolor = tuple(int(x) for x in diffcolor.split(',')) jsonfile = os.path.join(filename, 'record.json') try: if record: if local: local_d = webdriver.Remote(local, CAPABILITIES[browser]) else: local_d = d with contextlib.closing(local_d): with open(jsonfile, 'w') as f: f.write( jsonpickle.encode( TestRun.record(local_d, d, (url, postdata), screensize, filename, diffcolor, sleepfactor, save_diff, his_mode))) print 'Test recorded successfully' return 0 elif rerecord: with open(jsonfile, 'r') as f: TestRun.rerecord(jsonpickle.decode(f.read()), filename, (url, postdata), d, sleepfactor, diffcolor, save_diff, his_mode) print 'Test rerecorded successfully' return 0 elif autorerecord: with open(jsonfile, 'r') as f: test = jsonpickle.decode(f.read()) try: print 'Running test to determine if we need to rerecord' TestRun.playback(test, filename, (url, postdata), d, sleepfactor, diffcolor, save_diff, his_mode) print 'Test played back successfully' return 0 except TestError: print 'Test failed, rerecording...' TestRun.rerecord(test, filename, (url, postdata), d, sleepfactor, diffcolor, save_diff, his_mode) print 'Test rerecorded successfully' return 2 else: with open(jsonfile, 'r') as f: TestRun.playback(jsonpickle.decode(f.read()), filename, (url, postdata), d, sleepfactor, diffcolor, save_diff, his_mode) print 'Test played back successfully' return 0 finally: try: d.close() except UnexpectedAlertPresentException: print "auto accept alert" alert = d.switch_to_alert() alert.accept()
def main( testname, url, filename, postdata=None, record=False, rerecord=False, sleepfactor=1.0, browser='firefox', remote=None, local=None, diffcolor='0,255,0', screensize='1024x768', autorerecord=False, save_diff=False): if postdata: if postdata == '-': postdata = sys.stdin.read() else: with open(postdata, 'r') as f: postdata = json.loads(f.read()) try: if remote: d = webdriver.Remote(remote, CAPABILITIES[browser]) else: d = DRIVERS[browser]() screensize = tuple(int(x) for x in screensize.split('x')) except KeyError: raise ValueError( '[%s] Invalid browser %r; valid browsers are %r.' % (testname, browser, DRIVERS.keys()) ) try: os.makedirs(filename) except: pass diffcolor = tuple(int(x) for x in diffcolor.split(',')) jsonfile = os.path.join(filename, 'record.json') with contextlib.closing(d): if record: if local: local_d = webdriver.Remote(local, CAPABILITIES[browser]) else: local_d = d with contextlib.closing(local_d): with open(jsonfile, 'w') as f: f.write( jsonpickle.encode( TestRun.record(local_d, d, (url, postdata), screensize, filename, diffcolor, sleepfactor, save_diff) ) ) print 'Test recorded successfully' return 0 elif rerecord: with open(jsonfile, 'r') as f: TestRun.rerecord(jsonpickle.decode(f.read()), filename, (url, postdata), d, sleepfactor, diffcolor, save_diff) print 'Test rerecorded successfully' return 0 elif autorerecord: with open(jsonfile, 'r') as f: test = jsonpickle.decode(f.read()) try: print 'Running test to determine if we need to rerecord' TestRun.playback(test, filename, (url, postdata), d, sleepfactor, diffcolor, save_diff) print 'Test played back successfully' return 0 except TestError: print 'Test failed, rerecording...' TestRun.rerecord(test, filename, (url, postdata), d, sleepfactor, diffcolor, save_diff) print 'Test rerecorded successfully' return 2 else: with open(jsonfile, 'r') as f: TestRun.playback(jsonpickle.decode(f.read()), filename, (url, postdata), d, sleepfactor, diffcolor, save_diff) print 'Test played back successfully' return 0
def main(testname, url, filename, postdata=None, record=False, rerecord=False, sleepfactor=1.0, browser='firefox', remote=None, local=None, diffcolor='0,255,0', screensize='1024x768', autorerecord=False, save_diff=False): if postdata: if postdata == '-': postdata = sys.stdin.read() else: with open(postdata, 'r') as f: postdata = json.loads(f.read()) try: if remote: d = webdriver.Remote(remote, CAPABILITIES[browser]) else: d = DRIVERS[browser]() screensize = tuple(int(x) for x in screensize.split('x')) except KeyError: raise ValueError('[%s] Invalid browser %r; valid browsers are %r.' % (testname, browser, DRIVERS.keys())) try: os.makedirs(filename) except: pass diffcolor = tuple(int(x) for x in diffcolor.split(',')) jsonfile = os.path.join(filename, 'record.json') with contextlib.closing(d): if record: if local: local_d = webdriver.Remote(local, CAPABILITIES[browser]) else: local_d = d with contextlib.closing(local_d): with open(jsonfile, 'w') as f: f.write( jsonpickle.encode( TestRun.record(local_d, d, (url, postdata), screensize, filename, diffcolor, sleepfactor, save_diff))) print 'Test recorded successfully' return 0 elif rerecord: with open(jsonfile, 'r') as f: TestRun.rerecord(jsonpickle.decode(f.read()), filename, (url, postdata), d, sleepfactor, diffcolor, save_diff) print 'Test rerecorded successfully' return 0 elif autorerecord: with open(jsonfile, 'r') as f: test = jsonpickle.decode(f.read()) try: print 'Running test to determine if we need to rerecord' TestRun.playback(test, filename, (url, postdata), d, sleepfactor, diffcolor, save_diff) print 'Test played back successfully' return 0 except TestError: print 'Test failed, rerecording...' TestRun.rerecord(test, filename, (url, postdata), d, sleepfactor, diffcolor, save_diff) print 'Test rerecorded successfully' return 2 else: with open(jsonfile, 'r') as f: TestRun.playback(jsonpickle.decode(f.read()), filename, (url, postdata), d, sleepfactor, diffcolor, save_diff) print 'Test played back successfully' return 0