Skip to content

Instantly share code, notes, and snippets.

@rmehta
Created March 27, 2017 12:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rmehta/1b9009fc54d2dd5c0fc24f4d1dfc51f9 to your computer and use it in GitHub Desktop.
Save rmehta/1b9009fc54d2dd5c0fc24f4d1dfc51f9 to your computer and use it in GitHub Desktop.
simple hack to make erpnext demo using selenium and text-to-speech
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from subprocess import Popen
def say(what):
Popen(['say', what, '-v', 'Samantha'])
class Browser(webdriver.Chrome):
def __init__(self):
self.route = None
super(Browser, self).__init__()
def enter(self):
self.elem.send_keys(Keys.RETURN)
def find(self, selector):
if self.route:
selector = '[data-page-route="{0}"] '.format(self.route) + selector
self.elem = self.find_element_by_css_selector(selector)
return self.elem
def go_to_list(self, doctype):
elem = self.find('#navbar-search')
elem.send_keys(doctype)
time.sleep(2)
elem.send_keys(Keys.ARROW_DOWN)
time.sleep(1)
elem.send_keys(Keys.RETURN)
self.route = 'List/' + doctype
time.sleep(3)
def run():
time.sleep(2)
say('go to your login page')
browser = Browser()
#driver.get("http://gadgets.erpnext.com/login")
browser.get("http://demo-test.erpnext.com.dev:8000/login")
assert "Login" in browser.title
time.sleep(2)
say('enter your user ID')
time.sleep(2)
browser.find('#login_email').send_keys('Administrator')
say('enter your password')
browser.find('#login_password').send_keys('admin')
browser.enter()
time.sleep(3)
assert "Desktop" in browser.title
say('open customer list')
browser.go_to_list('Customer')
time.sleep(2)
say('select customer')
browser.find('.btn-primary').click()
time.sleep(5)
browser.close()
if __name__=='__main__':
run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment