As promised in the article earlier on Automate DropBox Signups using python, I have come up with an article along with the codes to create an app and fetch the API keys for it which then allows us to access the files in dropbox. Well, again we stick to selenium module for an ease. In the last article, I’ve explained a python script to automate the signups for dropbox. Now that we have enough cloud space in different accounts. We now need to access the files in those spaces so we can use it as a file server. DropBox provides a feature to create apps on dropbox and gives API keys to hence access the files in the account. Since we’ve got multiple dropbox accounts we would stick towards automating the procedure to get the api key for accessing the files.
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time browser = webdriver.Firefox() browser.get("https://dropbox.com/login") list_of_inputs = browser.find_elements_by_xpath("//div/input[starts-with(@id,'pyxl')]") list_of_inputs.send_keys("firstname.lastname@example.org") list_of_inputs.send_keys("password") sign_in = browser.find_elements_by_xpath("//*[contains(text(),'Sign in')]") sign_in[len(sign_in)-1].click() time.sleep(10) browser.get("https://dropbox.com/developers/apps/create") time.sleep(3) type_of_app = browser.find_elements_by_xpath("//*[contains(text(),'Dropbox API app')]") type_of_app.click() file_access = browser.find_elements_by_xpath("//*[contains(text(),'My app needs access to files already on Dropbox.')]") file_access.click() type_of_file_access = browser.find_elements_by_xpath("//*[contains(text(),'My app needs access to a user')]") type_of_file_access.click() app_name = browser.find_element_by_name("name") app_name.send_keys("appnamewhichisuniquelolo") create_app = browser.find_elements_by_xpath("//*[contains(text(),'Create app')]") create_app.click() time.sleep(7) app_key_item = browser.find_element_by_class_name("app-key") app_key = str(app_key_item.get_attribute('innerHTML')) app_secret_item = browser.find_element_by_class_name("app-secret") app_secret = app_secret_item.get_attribute('data-app-secret') print app_key, app_secret
General Idea of Automation
The general idea for automation is to mimic the manual workflow and put it in a loop or assign a cron job(it’s kind of same thing but not really). For creating apps on dropbox, I did the same thing. The codes are self-explanatory. We’ve used selenium and time module throughout our program. We use selenium for initiating as well as interacting with the browser. You can see, we’ve used time.time(time_in_seconds) method from time module. Depending on the speed of the internet, we need to set this up. Failing to do so will lead the program to misbehave since it will start looking for some element even when the page hasn’t been completely loaded. We fuel our program with the varieties of methods selenium provides. The above codes however shows only the procedure to create an app for a single account and print the api keys. You should loop over some file containing email id’s and password and save the api keys to some file in real usage. Hint: Place a loop over the codes and once done with getting api keys, logout from the current account.
Do comment below how you felt the article was. Any queries, please mention below.
I’ve joined twitter @bbhishan