classerp_canvas_driver( browserDriver):__inject_js_files__ =[]def __init__(self):
browserDriver.__init__(self)
self.inject_js_files=[
os.path.join(self.rootPath,'lib/erp/javascripts/ERPOAL.js'),
os.path.join(self.rootPath,'lib/erp/javascripts/ERPActors.js'),
os.path.join(self.rootPath,'lib/erp/javascripts/browser_utils.js')
]def openPage(self, url='/ERP'):ifbrowserDriver.openPage(self, url):
self.__initHelper__()def __injectJSCode__(self, path):
js_lines=[]
file=open(os.path.abspath(path))for line infile:
js_lines.append(line)
self.browser.execute_script('\n'.join(js_lines))def __initHelper__(self):for path inself.inject_js_files:
self.__injectJSCode__(path)
time.sleep(1)defnavigateByButton(self, button_name):
self.clickERPButton(button_name)
time.sleep(5)try:
WebDriverWait(self.browser,10).until(
EC.presence_of_element_located((By.ID,"obj1"))
)finally:
self.__initHelper__()defclickERPButton(self, name):
code= 'mouseClick("{0}")'.format(name)
self.browser.execute_script(code)defpressERPButton(self, name):
code= 'mousePress("{0}")'.format(name)
self.browser.execute_script(code)defreleaseERPButton(self, name):
code= 'mouseRelease("{0}")'.format(name)
self.browser.execute_script(code)def waitDisplayUpdate(self, name, property, expect_value, timeout=20):
n= min(int(timeout / 0.2), 50)for i inrange(n):
value= self.browser.execute_script('return ERPGetElementProperty("{0}", "{1}")'.format(name, property))if value ==expect_value:returnTrue
time.sleep(0.2)returnFalsedefgetElementProperty(self, name, property):return self.browser.execute_script('return ERPGetElementProperty("{0}", "{1}")'.format(name, property))def setElementProperty(self, name, property, value, isDigit=False):ifisDigit:
self.browser.execute_script('ERPSetElementProperty("{0}", "{1}", {2});'.format(name, property, value))else:
self.browser.execute_script('ERPSetElementProperty("{0}", "{1}", "{2}");'.format(name, property, value))