Update
This commit is contained in:
101
Reservation.py
101
Reservation.py
@@ -1,30 +1,107 @@
|
||||
from selenium import webdriver
|
||||
try:
|
||||
from selenium import webdriver
|
||||
except ImportError:
|
||||
import os
|
||||
os.system('pip install selenium')
|
||||
from selenium import webdriver
|
||||
from time import sleep
|
||||
timetable = ['/html/body/blockquote/table/tbody/tr[3]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[4]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[5]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[6]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[7]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[8]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[9]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[10]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[11]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[12]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[13]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[14]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[15]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[16]/td[*]/input',
|
||||
'/html/body/blockquote/table/tbody/tr[17]/td[*]/input']
|
||||
|
||||
|
||||
def chooseTime():
|
||||
print('\n Choose a time:')
|
||||
print('7AM-8AM 1')
|
||||
print('8AM-9AM 2')
|
||||
print('9AM-10AM 3')
|
||||
print('10AM-11AM 4')
|
||||
print('11AM-12PM 5')
|
||||
print('12PM-1PM 6')
|
||||
print('1PM-2PM 7')
|
||||
print('2PM-3PM 8')
|
||||
print('3PM-4PM 9')
|
||||
print('4PM-5PM 10')
|
||||
print('5PM-6PM 11')
|
||||
print('6PM-7PM 12')
|
||||
print('7PM-8PM 13')
|
||||
print('8PM-9PM 14')
|
||||
print('9PM-10PM 15')
|
||||
while True:
|
||||
choiceTime = input('\nYour choice: ')
|
||||
if choiceTime in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15']:
|
||||
return int(choiceTime)-1
|
||||
else:
|
||||
print("\nInvalid choice.")
|
||||
continue
|
||||
|
||||
|
||||
def chooseDay(x):
|
||||
slots = []
|
||||
for i in range(x):
|
||||
print('\n Choose a day:')
|
||||
print('Sunday 1')
|
||||
print('Monday 2')
|
||||
print('Tuesday 3')
|
||||
print('Wednesday 4')
|
||||
print('Thursday 5')
|
||||
print('Friday 6')
|
||||
print('Saturday 7')
|
||||
while True:
|
||||
choiceDay = input('\nYour choice: ')
|
||||
if choiceDay in ['1', '2', '3', '4', '5', '6', '7']:
|
||||
if choiceDay == '1':
|
||||
period = timetable[chooseTime()].replace('*', '8')
|
||||
slots.append(period)
|
||||
break
|
||||
else:
|
||||
period = timetable[chooseTime()].replace('*', choiceDay)
|
||||
slots.append(period)
|
||||
break
|
||||
else:
|
||||
print("\nInvalid choice.")
|
||||
continue
|
||||
slots = [i for n, i in enumerate(slots) if i not in slots[:n]]
|
||||
return slots
|
||||
|
||||
|
||||
def Booking():
|
||||
weeks = int(input('Weeks? '))
|
||||
|
||||
weeks = int(input('Number of weeks to book: '))
|
||||
days = int(input('Number of slots in a week to book: '))
|
||||
final = chooseDay(days)
|
||||
|
||||
user = str(input('Username: '))
|
||||
password = str(input('Password: '))
|
||||
browser = webdriver.Edge()
|
||||
browser.get("http://extranet.oppilastalo.fi/")
|
||||
browser.find_element_by_xpath(
|
||||
'/html/body/div/form/table/tbody/tr[3]/td[2]/input').send_keys('Username')
|
||||
'/html/body/div/form/table/tbody/tr[3]/td[2]/input').send_keys(user)
|
||||
browser.find_element_by_xpath(
|
||||
'/html/body/div/form/table/tbody/tr[4]/td[2]/input').send_keys('Password')
|
||||
'/html/body/div/form/table/tbody/tr[4]/td[2]/input').send_keys(password)
|
||||
browser.find_element_by_xpath(
|
||||
'/html/body/div/form/table/tbody/tr[5]/td[1]/input').click()
|
||||
sleep(3)
|
||||
path = {1: '/html/body/blockquote/table/tbody/tr[16]/td[4]/input',
|
||||
2: '/html/body/blockquote/table/tbody/tr[17]/td[4]/input',
|
||||
3: '/html/body/blockquote/table/tbody/tr[16]/td[8]/input',
|
||||
4: '/html/body/blockquote/table/tbody/tr[17]/td[8]/input'}
|
||||
week = 0
|
||||
while week <= weeks:
|
||||
for i in range(1, 5):
|
||||
for i in range(len(final)):
|
||||
browser.find_element_by_xpath('/html/body/code/a[4]').click()
|
||||
sleep(3)
|
||||
while True:
|
||||
try:
|
||||
browser.find_element_by_xpath(path[i]).click()
|
||||
browser.find_element_by_xpath(final[i]).click()
|
||||
browser.find_element_by_xpath(
|
||||
'/html/body/blockquote/submenu/blockquote/input[1]').click()
|
||||
break
|
||||
@@ -33,11 +110,11 @@ def Booking():
|
||||
browser.find_element_by_xpath(
|
||||
'/html/body/blockquote/table/tbody/tr[1]/td[7]/input').click()
|
||||
sleep(5)
|
||||
continue
|
||||
except:
|
||||
print('Ei näe enempää viikkoja.')
|
||||
browser.close()
|
||||
return
|
||||
week += 1
|
||||
browser.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user