from termcolor import colored from pyvirtualdisplay import Display from selenium import webdriver from datetime import timedelta, date import sys from sys import argv def swidows(date): display = Display(visible=0, size=(800, 600)) display.start() browser = webdriver.Firefox() browser.get('https://secure.scottishwidows.co.uk/frame.wpl/839') frame = browser.find_element_by_name('main') browser.switch_to.frame(frame) browser.find_element_by_name("shMbrInputCustID").send_keys('15664033') browser.find_element_by_name("shMbrInputPIN").send_keys('3669') browser.find_element_by_name("shMbrInputDOB").send_keys('11/03/1991') browser.find_element_by_name("_submit").click() browser.find_elements_by_tag_name('a')[7].click() browser.find_elements_by_tag_name('a')[3].click() browser.find_element_by_name("inputValuationDate").send_keys(date) browser.find_element_by_xpath("//input[@type='SUBMIT']").click() dates = browser.find_element_by_tag_name('h4').text units = browser.find_elements_by_class_name('bodytext')[1].text price = browser.find_elements_by_class_name('bodytext')[3].text value = colored(browser.find_elements_by_class_name('bodytext')[5].text, 'green') print(date+","+units+","+price+","+value) browser.quit() display.stop() dates = ["28/01/2017", "28/02/2017", "28/03/2017", "28/04/2017", "28/05/2017", "28/06/2017", "28/07/2017", "28/08/2017", "28/09/2017", "28/10/2017", "28/11/2017", "28/12/2017", "28/01/2018", "28/02/2018", "28/03/2018", "28/04/2018", "28/05/2018", "28/06/2018"] for i in range(0,len(dates)): swidows(dates[i]) #date=sys.argv[1] #date=date(2015, 1, 10).strftime("%d/%m/%Y") #print(date) #swidows(date)