Last active
August 29, 2015 14:03
-
-
Save mlimaloureiro/4abc1e250c17a17f023c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from selenium import webdriver | |
from selenium.webdriver.support.ui import Select | |
from selenium.webdriver.common.by import By | |
from selenium.webdriver.support.ui import WebDriverWait | |
from selenium.webdriver.support import expected_conditions as EC | |
""" | |
Inserir inputs | |
""" | |
configs = {} | |
# url da listing que querem preencher | |
configs['listingUrl'] = "http://spa.dev/Lisbon/Cool-Studio-Apartment-in-a-Multicultural-area-of-Lisbon_11026_listing.html" | |
# move in e move out | |
configs['moveIn'] = "02-10-2015" | |
configs['moveOut'] = "02-11-2015" | |
# quarto ou propriedade [room, property] | |
# isto e para ver se ele tem que fazer o passo | |
# adicional de escolher o quarto | |
configs['type'] = "property" | |
# se for do tipo room, escolhe qual o numero do quarto | |
configs['roomNumber'] = 1 | |
# ------- student details -------- | |
configs['name'] = "Miguel Loureiro" | |
configs['email'] = "[email protected]" | |
configs['phone'] = "911951249" | |
configs['nationality'] = "PT" | |
configs['gender'] = "m" | |
configs['birthDateYear'] = "1990" | |
configs['birthDateMonth'] = "5" | |
configs['birthDateDay'] = "8" | |
# options [undergraduate, postgraduate, summer_school, internship, professional_placement, other] | |
configs['purposeOfStay'] = 'undergraduate' | |
configs['checkEmail'] = True | |
configs['checkPaymentTerms'] = True | |
configs['checkAgreePolicy'] = True | |
# promocode | |
configs['promocode'] = '' | |
""" | |
Automate code | |
""" | |
driver = webdriver.Firefox() | |
driver.get(configs['listingUrl']) | |
driver.find_element_by_id('move_in_date_ui').send_keys(configs['moveIn']) | |
driver.find_element_by_id('move_out_date_ui').send_keys(configs['moveOut']) | |
if configs['type'] == "room": | |
driver.find_element_by_id('room_' + str(configs['roomNumber'])).click() | |
try: | |
element = WebDriverWait(driver, 10).until( | |
EC.element_to_be_clickable((By.CSS_SELECTOR, "#prices .orange-button")) | |
) | |
finally: | |
driver.find_element_by_css_selector('#prices .orange-button').click() | |
try: | |
element = WebDriverWait(driver, 10).until( | |
EC.presence_of_element_located((By.ID, "uniplaces_student_info_name")) | |
) | |
finally: | |
driver.find_element_by_id('uniplaces_student_info_name').send_keys(configs['name']) | |
driver.find_element_by_id('uniplaces_student_info_email').send_keys(configs['email']) | |
driver.find_element_by_id('uniplaces_student_info_phone').send_keys(configs['phone']) | |
select = Select(driver.find_element_by_id("uniplaces_student_info_nationality")) | |
select.select_by_value(configs['nationality']) | |
select = Select(driver.find_element_by_id("uniplaces_student_info_gender")) | |
select.select_by_value(configs['gender']) | |
select = Select(driver.find_element_by_id("uniplaces_student_info_dateBirth_year")) | |
select.select_by_value(configs['birthDateYear']) | |
select = Select(driver.find_element_by_id("uniplaces_student_info_dateBirth_month")) | |
select.select_by_value(configs['birthDateMonth']) | |
select = Select(driver.find_element_by_id("uniplaces_student_info_dateBirth_day")) | |
select.select_by_value(configs['birthDateDay']) | |
select = Select(driver.find_element_by_id("uniplaces_student_info_studentType")) | |
select.select_by_value(configs['purposeOfStay']) | |
if configs['checkEmail']: | |
driver.find_element_by_id('uniplaces_student_info_emailCampaign').click() | |
if configs['checkPaymentTerms']: | |
driver.find_element_by_id('uniplaces_student_info_readPaymentTerms').click() | |
if configs['checkAgreePolicy']: | |
driver.find_element_by_id('uniplaces_student_info_agreeTermsOfUse').click() | |
if configs['promocode']: | |
driver.find_element_by_id('promoCodeInput').send_keys(configs['promocode']) | |
driver.find_element_by_id('submitPromoCode').click() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment