Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.25 KB | None | 0 0
  1. #!/usr/bin/python2.4
  2. # -*- coding: utf-8 -*-
  3. import datetime
  4. import cv2
  5. import numpy as np
  6. import pyautogui
  7. import random
  8. import time
  9.  
  10. def click_image(image_path, position, action, timestamp, offset = 5):
  11. img = cv2.imread(image_path)
  12. height, width, channels = img.shape
  13. pyautogui.moveTo(position[0] + 10, position[1] + 10,
  14. timestamp)
  15. pyautogui.click(button=action)
  16. pyautogui.click(button=action)
  17.  
  18. def imagesearch(image_path, precision=0.8):
  19. im = pyautogui.screenshot()
  20. #im.save('testarea.png') usefull for debugging purposes, this will save the captured region as "testarea.png"
  21. img_rgb = np.array(im)
  22. img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
  23. template = cv2.imread(image_path, 0)
  24. template.shape[::-1]
  25. res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
  26. min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
  27. if max_val < precision:
  28. return [-1,-1]
  29. return max_loc
  30.  
  31.  
  32. def main():
  33. image_paths = [
  34. '/Users/madswed/Documents/tmp/tom.png'
  35. ]
  36.  
  37. for current_image_path in image_paths:
  38. position = imagesearch(current_image_path, 0.7)
  39. if(position != [-1, -1]):
  40. click_image(current_image_path, position, "left", 0)
  41.  
  42. main()
  43.  
  44. from selenium import webdriver
  45. from selenium.webdriver.common.keys import Keys
  46.  
  47. driver = webdriver.Chrome()
  48.  
  49. #typ att man behöver göra en sak som är true bara ifall titeln alltså assert är Timeedit annars så kör den om den
  50. #ifall sidan är överbelastad.
  51. #om inte adressen kommer fram alltså om sidan
  52. # är nere så görs en trycatch och gör hela koden till en funtkion som kommer
  53. #att köras igen tills driver.get(URL) är sann och även att assert är rätt vilket säkerställer
  54. #även att man har kommit fram denna måste täcka all kod på sidan mer eller mindre.
  55.  
  56. #Vilken sida drivern ska ta oss till
  57. driver.get("https://se.timeedit.net/web/liu/db1/wr_stud/")
  58.  
  59. #r = requests.get("https://se.timeedit.net/web/liu/db1/wr_stud/")
  60.  
  61. #print r.text
  62.  
  63. #Se till att det står TimeEdit i titeln, för att säkerställa att navigationen har gått rätt till
  64. assert "TimeEdit" in driver.title
  65.  
  66. #Klickar logga in när drivern tagit oss till timeedits-bokningssystem
  67. loginTimeEdit = driver.find_element_by_xpath('/html/body/div[2]/div/table/tbody/tr/td/div/form/div/a[1]')
  68. loginTimeEdit.click()
  69.  
  70. #Fyller i användarnamn på LISAM LIU
  71. #loginLisamUsername = driver.find_element_by_id('userNameInput')
  72. loginLisamUsername = driver.find_element_by_xpath('//*[@id="userNameInput"]')
  73. loginLisamUsername.send_keys("ponte582")
  74.  
  75. #Fyller i lösenord på LISAM LIU
  76. #loginLisamPassword = driver.find_element_by_id('passwordInput')
  77. loginLisamPassword = driver.find_element_by_xpath('//*[@id="passwordInput"]')
  78. loginLisamPassword.send_keys("Hallonsaft1")
  79.  
  80. #Loggar in på LISAM LIU
  81. #loginLisamClick = driver.find_element_by_id('submitButton')
  82. loginLisamClick = driver.find_element_by_xpath('//*[@id="submitButton"]')
  83. loginLisamClick.click()
  84.  
  85. #Väljer studentbokning på LIUS hemsida
  86. chooseStudentBokning = driver.find_element_by_xpath('//*[@id="contents"]/div[3]/div/div[1]/a[1]/div/span[1]/span')
  87. chooseStudentBokning.click()
  88.  
  89. #Behöver en funktion som adderar en dag på den aktuella dagen, och den dagen ska sedan väljas
  90. #de två sista teckena i det nya datumet ska sedan jämföras med Tidsschemat nedanför och sedan välja
  91. #just den spalten. Detta för att sedan trycka på 10-14 i just den dagen och sen klicka okej.
  92.  
  93. tomorrow_date = (datetime.datetime.now() + datetime.timedelta(days=1)) #datetime.datetime
  94. tomorrow_year = str(tomorrow_date.year) #int
  95. tomorrow_month = tomorrow_date.month #int
  96. tomorrow_day = tomorrow_date.day #int
  97. if tomorrow_month < 10:
  98. tomorrow_month = "0"+str(tomorrow_month)
  99. else:
  100. tomorrow_month = str(tomorrow_month)
  101.  
  102. if tomorrow_day < 10:
  103. tomorrow_day = "0"+str(tomorrow_day)
  104. else:
  105. tomorrow_day = str(tomorrow_day)
  106.  
  107. date_button = driver.find_element_by_xpath('//*[@id="leftresdate"]')
  108. date_button.clear()
  109. date_button.click()
  110. date_button.send_keys(str(tomorrow_year) + "-" + str(tomorrow_month) + "-" + str(tomorrow_day))
  111.  
  112. chooseOnlyAvailable = driver.find_element_by_xpath('//*[@id="timeHourSpec3"]')
  113. chooseOnlyAvailable.click()
  114.  
  115. #Tar fram tiden 10
  116. chooseStart = driver.find_element_by_xpath('//*[@id="contents"]/div[2]/table/tbody/tr/td[3]/div/select[1]/option[4]')
  117. chooseStart.click()
  118.  
  119. #Tar fram tiden 14
  120. chooseEnd = driver.find_element_by_xpath('//*[@id="contents"]/div[2]/table/tbody/tr/td[4]/div/select[1]/option[8]')
  121. chooseEnd.click()
  122.  
  123. #Trycker på RUM AG21
  124. chooseAG21 = driver.find_element_by_xpath('//*[@id="objectselectionresult"]/table/tbody/tr[2]/td[2]')
  125. chooseAG21.click()
  126.  
  127. #Klicka på klockan 10 i schemat
  128. #chooseTimeStartRoom = driver.find_element_by_xpath('')
  129. #chooseTimeStartRoom.click()
  130.  
  131. chooseNextTomorrow_date = (datetime.datetime.now() + datetime.timedelta(days=1))
  132.  
  133. chooseNextDay = chooseNextTomorrow_date.day
  134. chooseNextMonth = chooseNextTomorrow_date.month
  135.  
  136. chooseNextDay = str(chooseNextDay) #Konvertera int to String
  137. chooseNextMonth = str(chooseNextMonth) #Konvertera int to string
  138.  
  139. NextDayInTable = "%s/%s"%(chooseNextDay,chooseNextMonth)
  140. print NextDayInTable
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement