I am looking to build some function with for in
to go through my dictionary. I explain a little the code that I have here, I use selenium. Within Def Name()
in variable nametag
, I call "NameTag"
of my dictionary. So successively with all the data from my MW $ 1.5 dictionary. Now, for now my program fulfills everything with MW $ 1.5, I want that once I finish it starts again with the next row of the dictionary, MW $ 2.5 and do the same.
It is worth clarifying that the steps that I need to repeat with the values of December are from def clone()
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome('/Users/Martin/Desktop/chromedriver')
timeout = 30
driver.get("https://onevideo.aol.com/#/")
diccionario = {"inventorysources":{"Nametag": "MW $ 1.5 |","Floor_rate": "1.5","Rate": "2"},
"Nametag": "MW $ 2.5 |","Floor_rate": "2.5","Rate": "3.25"}
def main():
login()
clone()
Name()
Rate()
Floor()
Download()
def login():
try:
element_present = EC.presence_of_element_located((By.CSS_SELECTOR, "input.ng-valid:nth-child(1)"))
WebDriverWait(driver, timeout).until(element_present)
except TimeoutException:
print ("Timed out waiting for page to load")
username = driver.find_element_by_css_selector("input.ng-valid:nth-child(1)")
username.send_keys("user")
driver.find_element_by_css_selector("button.btn:nth-child(2)").click()
try:
element_present = EC.presence_of_element_located((By.CSS_SELECTOR, "div.group-field-block:nth-child(2) > input:nth-child(2)"))
WebDriverWait(driver, timeout).until(element_present)
except TimeoutException:
print ("Timed out waiting for page to load")
password = driver.find_element_by_css_selector("div.group-field-block:nth-child(2) > input:nth-child(2)")
password.send_keys("pass")
driver.find_element_by_css_selector(".button").click()
element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'h1.ng-scope > span:nth-child(1)')))
def clone():
#Clonar
url = driver.get("https://onevideo.aol.com/#/inventorysources")
try:
element_present = EC.presence_of_element_located((By.CSS_SELECTOR, "div.ngRow:nth-child(1) > div:nth-child(1) > div:nth-child(9) > div:nth-child(1) > div:nth-child(1) > adap-options-menu:nth-child(1) > div:nth-child(1) > button:nth-child(2)"))
WebDriverWait(driver, timeout).until(element_present)
except TimeoutException:
print ("Timed out waiting for page to load")
driver.find_element_by_css_selector('div.ngRow:nth-child(1) > div:nth-child(1) > div:nth-child(9) > div:nth-child(1) > div:nth-child(1) > adap-options-menu:nth-child(1) > div:nth-child(1) > button:nth-child(2)').click()
try:
element_present = EC.presence_of_element_located((By.CSS_SELECTOR, "div.ngRow:nth-child(1) > div:nth-child(1) > div:nth-child(9) > div:nth-child(1) > div:nth-child(1) > adap-options-menu:nth-child(1) > div:nth-child(1) > button:nth-child(2)"))
WebDriverWait(driver, timeout).until(element_present)
except TimeoutException:
print ("Timed out waiting for page to load")
driver.find_element_by_css_selector('.open > ul:nth-child(5) > li:nth-child(3) > a:nth-child(1)').click()
def Name():
try:
element_present = EC.presence_of_element_located((By.CSS_SELECTOR, 'div.margin-top-medium > input:nth-child(1)'))
WebDriverWait(driver, timeout).until(element_present)
except TimeoutException:
print ("Timed out waiting for page to load")
name = driver.find_element_by_css_selector('div.margin-top-medium > input:nth-child(1)')
name.clear()
fecha = time.strftime("%d-%m-%y")
nametag = name.send_keys(str(diccionario["inventorysources"]["Nametag"]), fecha)
def Rate():
try:
element_present = EC.presence_of_element_located((By.CSS_SELECTOR, '.span9 > div:nth-child(1) > form:nth-child(1) > div:nth-child(9) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > span:nth-child(1) > adap-input:nth-child(1) > span:nth-child(1) > input:nth-child(2)'))
WebDriverWait(driver, timeout).until(element_present)
except TimeoutException:
print ("Timed out waiting for page to load")
Rate = driver.find_element_by_css_selector('.span9 > div:nth-child(1) > form:nth-child(1) > div:nth-child(9) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > span:nth-child(1) > adap-input:nth-child(1) > span:nth-child(1) > input:nth-child(2)')
Rate.clear()
Rate.send_keys(str(diccionario["inventorysources"]["Floor_rate"]))
def Floor():
try:
element_present = EC.presence_of_element_located((By.CSS_SELECTOR, '.span9 > div:nth-child(1) > form:nth-child(1) > div:nth-child(12) > div:nth-child(2) > adap-input:nth-child(1) > span:nth-child(1) > input:nth-child(1)'))
WebDriverWait(driver, timeout).until(element_present)
except TimeoutException:
print ("Timed out waiting for page to load")
Floor = driver.find_element_by_css_selector('.span9 > div:nth-child(1) > form:nth-child(1) > div:nth-child(12) > div:nth-child(2) > adap-input:nth-child(1) > span:nth-child(1) > input:nth-child(1)')
Floor.clear()
Floor.send_keys(str(diccionario["inventorysources"]["Rate"]))
def Save():
try:
element_present = EC.presence_of_element_located((By.CSS_SELECTOR, ".bs-docs-social-buttons > li:nth-child(2) > button:nth-child(1)"))
WebDriverWait(driver, timeout).until(element_present)
except TimeoutException:
print ("Timed out waiting for page to load")
Save = driver.find_element_by_css_selector(".bs-docs-social-buttons > li:nth-child(2) > button:nth-child(1)").click()
element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'h1.ng-scope > span:nth-child(1)')))
if __name__ == 'main':
main()