Skip to content

Instantly share code, notes, and snippets.

@jgarciabu
Created August 30, 2017 23:03
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 jgarciabu/39abac587a515ff5992f54c5e9e1103a to your computer and use it in GitHub Desktop.
Save jgarciabu/39abac587a515ff5992f54c5e9e1103a to your computer and use it in GitHub Desktop.
Python Selenium Bot used to create new mobile banking accounts for new consultants
from selenium import webdriver
import csv
import getpass
# create new instance of Firefox driver
browser = webdriver.Firefox()
# go to First Ipswich Bank website
browser.get("https://ssl.selectpayment.com/mp/fnbicom/login/page.aspx")
# Fill out login credentials (username, password, company name)
userbox1 = browser.find_element_by_name("ctl01$Login$LoginScreen$tbUsername")
userbox1.send_keys("*****")
passwordbox = browser.find_element_by_name("ctl01$Login$LoginScreen$tbPassword")
bankpassword = "********"
passwordbox.send_keys(bankpassword)
companybox = browser.find_element_by_name("ctl01$Login$LoginScreen$tbLoginCompany")
companybox.send_keys("******")
loginbutton = browser.find_element_by_class_name("button")
loginbutton.click()
# Navigate to new user webform
adminlink = browser.find_element_by_link_text("Admin")
adminlink.click()
adduserlink = browser.find_element_by_link_text("Add User")
adduserlink.click()
# Read new user data from spreadsheet and use data to fill in web form boxes
try:
with open("test.csv", "r") as consultantlist:
consultantlistreader = csv.reader(consultantlist, delimiter=",")
exampledata = list(consultantlistreader)
rownum = 1
colnum = 0
passwordlist = []
while rownum <= len(exampledata):
for item in exampledata:
fullnamebox = browser.find_element_by_name("ctl01$ctl06$editInfo$tbFullName")
fullnamebox.send_keys(exampledata[rownum][colnum])
colnum += 1
usernamebox = browser.find_element_by_name("ctl01$ctl06$editInfo$tbUsername")
usernamebox.send_keys(exampledata[rownum][colnum])
colnum+= 1
emailaddressbox = browser.find_element_by_name("ctl01$ctl06$editInfo$tbEmailAddress")
emailaddressbox.send_keys(exampledata[rownum][colnum])
rownum += 1
colnum = 0
password = browser.find_element_by_class_name("labelData")
passwordlist.append(password.text)
print(passwordlist)
custservcheck = browser.find_element_by_name("ctl01$ctl06$editInfo$UserRoles$ctl02$Enabled")
custservcheck.click()
updatebutton = browser.find_element_by_name("ctl01$ctl06$btnUpdate")
updatebutton.click()
mobilebutton = browser.find_element_by_name("ctl01$ctl06$editGroups$RoleRepeater$ctl00$editGroupsInRole$UserGroupsInRole$ctl04$Enabled")
mobilebutton.click()
locationbutton = browser.find_element_by_name("ctl01$ctl06$editLocations$gridUserLocations$ctl02$Enabled")
locationbutton.click()
finalupdatebutton = browser.find_element_by_name("ctl01$ctl06$btnUpdate")
finalupdatebutton.click()
listrolesbutton = browser.find_element_by_link_text("List Roles")
listrolesbutton.click()
adduserbutton = browser.find_element_by_link_text("Add User")
adduserbutton.click()
# Take password list and export to passwordlist csv
if rownum == len(exampledata):
with open('passwordlist.csv','w') as passwordcsv:
mywriter = csv.writer(passwordcsv)
mywriter.writerows([passwordlist])
passwordcsv.close()
consultantlist.close()
browser.quit()
except Exception as e:
print("There's been an exception. Printing temp password list to screen and csv output: [%s]" % ', '.join(map(str, passwordlist)))
with open('passwordlist.csv','w') as passwordcsv:
mywriter = csv.writer(passwordcsv)
mywriter.writerows([passwordlist])
passwordcsv.close()
consultantlist.close()
browser.quit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment