Traceback (most recent call last):
File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 61, in application
response = frappe.handler.handle()
File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 21, in handle
data = execute_cmd(cmd)
File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 56, in execute_cmd
return frappe.call(method, frappe.form_dict)
File "/home/frappe/frappe-bench/apps/frappe/frappe/init.py", line 1026, in call
return fn(*args, *newargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/desk/form/save.py", line 22, in savedocs
doc.save()
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 260, in save
return self._save(args, kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 283, in _save
self.insert()
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 222, in insert
self.run_before_save_methods()
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 876, in run_before_save_methods
self.run_method("validate")
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 772, in run_method
out = Document.hook(fn)(self, *args, kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 1048, in composer
return composed(self, method, *args, *kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 1031, in runner
add_to_return_value(self, fn(self, args, kwargs))
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 766, in <lambda>
fn = lambda self, *args, *kwargs: getattr(self, method)(args, **kwargs)
File "/home/frappe/frappe-bench/apps/bank_integration/bank_integration/bank_integration/doctype/bank_integration_settings/bank_integration_settings.py", line 17, in validate
bank.login(self.password)
File "/home/frappe/frappe-bench/apps/bank_integration/bank_integration/bank_integration/api/hdfc_bank_api.py", line 21, in login
self.setup_browser()
File "/home/frappe/frappe-bench/apps/bank_integration/bank_integration/bank_integration/api/bank_api.py", line 25, in setup_browser
self.br = webdriver.Chrome(options=options)
File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in init
self.service.start()
File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 83, in start
os.path.basename(self.path), self.start_error_message)
WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
Traceback (most recent call last): File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 61, in application response = frappe.handler.handle() File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 21, in handle data = execute_cmd(cmd) File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 56, in execute_cmd return frappe.call(method, frappe.form_dict) File "/home/frappe/frappe-bench/apps/frappe/frappe/init.py", line 1026, in call return fn(*args, *newargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/desk/form/save.py", line 22, in savedocs doc.save() File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 260, in save return self._save(args, kwargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 283, in _save self.insert() File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 222, in insert self.run_before_save_methods() File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 876, in run_before_save_methods self.run_method("validate") File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 772, in run_method out = Document.hook(fn)(self, *args, kwargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 1048, in composer return composed(self, method, *args, *kwargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 1031, in runner add_to_return_value(self, fn(self, args, kwargs)) File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 766, in <lambda> fn = lambda self, *args, *kwargs: getattr(self, method)(args, **kwargs) File "/home/frappe/frappe-bench/apps/bank_integration/bank_integration/bank_integration/doctype/bank_integration_settings/bank_integration_settings.py", line 17, in validate bank.login(self.password) File "/home/frappe/frappe-bench/apps/bank_integration/bank_integration/bank_integration/api/hdfc_bank_api.py", line 21, in login self.setup_browser() File "/home/frappe/frappe-bench/apps/bank_integration/bank_integration/bank_integration/api/bank_api.py", line 25, in setup_browser self.br = webdriver.Chrome(options=options) File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in init self.service.start() File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 83, in start os.path.basename(self.path), self.start_error_message) WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home