I want to make this code with functions. With the data of the Login and achieve it and it is perfect, the problem comes later with 2 issues:
The first, where it says #Clonar
there is a change of URL and it is executed automatically once I click to login. That does not finish logging so I need a function that is not time.sleep()
but one that waits until the login ends or when "onevideo.aol.com/#/Campaigns"
is the page where I am in selenium (after login enter that url) there my driver.get("https://onevideo.aol.com/#/inventorysources")
is executed.
On the other hand, here's my second question. I need just as I did for the login to do the same with #Clonar, #Name tag, #Rate, #Floor. What do I mean by 'The same', is that to execute each step until you get the answer do not run the following
Thanks
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')
driver.get("https://onevideo.aol.com/#/")
timeout = 30
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("martinbouhier")
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()
#Clonar
driver.get("https://onevideo.aol.com/#/inventorysources")
clone = 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()
clone = driver.find_element_by_css_selector('.open > ul:nth-child(5) > li:nth-child(3) > a:nth-child(1)').click()
#Nombre tag
name = driver.find_element_by_css_selector('div.margin-top-medium > input:nth-child(1)')
name.clear()
name.send_keys('--test$2--')
#Rate
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('2')
#Floor
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('2')
driver.find_element_by_css_selector(".bs-docs-social-buttons > li:nth-child(2) > button:nth-child(1)").click()
driver.close()