Advertisement
Jvsierra

biblio

Oct 13th, 2019
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.11 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Wed Jul 24 19:27:05 2019
  4.  
  5. @author: João Victor Sierra
  6. @description: Script que atualiza automaticamente os livros da biblioteca
  7. """
  8.  
  9. from selenium import webdriver
  10. from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
  11. from selenium.webdriver.common.by import By
  12. from selenium.webdriver.common.alert import Alert
  13. from selenium.webdriver.support.ui import WebDriverWait
  14. from selenium.webdriver.support import expected_conditions as EC
  15. import datetime
  16.  
  17. binary = FirefoxBinary("C:\\Program Files\\Mozilla Firefox\\firefox.exe")
  18. driver = webdriver.Firefox(firefox_binary=binary, executable_path=r"C:\\geckodriver.exe")
  19.  
  20. maxRenovacoes = 5
  21. site_facul = "https://www.unoeste.br/login"
  22. user = "" #LOGIN DA FACUL AQUI
  23. senha = "" #SENHA DA FACUL AQUI
  24.  
  25. driver.get(site_facul)
  26.  
  27. driver.find_element_by_name("login").send_keys(user)
  28. input_pass = driver.find_element_by_name("senha").send_keys(senha)
  29. driver.find_element_by_name("btnConfirmar").click()
  30.  
  31. driver.get(driver.current_url)
  32.  
  33. driver.find_element(By.XPATH, "/html/body/form/div[3]/div[1]/div/div[8]/div[1]/ul/li[5]/a").click()
  34. driver.find_element(By.XPATH, "//*[@id='ContentPlaceHolder_hlSituacaoBiblioteca']").click()
  35.  
  36. driver.implicitly_wait(3000)
  37.  
  38. driver.switch_to.window(driver.window_handles[1])
  39.  
  40. driver.implicitly_wait(10000)
  41.  
  42. driver.find_element(By.XPATH, "/html/body/div[1]/div[2]/section/div[2]/div/div[2]/div[1]/ul/li[2]/a").click()
  43.  
  44. tabela_livros = driver.find_element(By.XPATH, "//*[@id='containerAbasConsulta']/div[3]/table/tbody")
  45.  
  46. linhas = tabela_livros.find_elements(By.TAG_NAME, "tr")
  47.  
  48. print("\n\nLIVROS EMPRESTADOS:\n\n")
  49.  
  50. for linha in linhas:
  51.    colunas = linha.find_elements(By.TAG_NAME, "td")
  52.    
  53.    nomeLivro = colunas[0].text
  54.    dataEmprestimo = colunas[2].text.split(' ')[0]
  55.    dataDevolucao = colunas[4].text
  56.    numRenovacoes = colunas[5].text
  57.    
  58.    datetimeHoje = datetime.datetime.today()
  59.    datetimeDevolucao = datetime.datetime.strptime(dataDevolucao, '%d/%m/%Y')
  60.    
  61.    print("Titulo: {}".format(nomeLivro))
  62.    print("Data do emprestimo: {}".format(dataEmprestimo))
  63.    print("Data para devolucao: {}".format(dataDevolucao))
  64.  
  65.    diferencaTempo = datetimeDevolucao - datetimeHoje
  66.    
  67.    print("{} dias para renovar".format(diferencaTempo.days + 1))
  68.  
  69.    if(diferencaTempo.days + 1 <= 1):
  70.        if(numRenovacoes == maxRenovacoes):
  71.            print("Esse livro já foi renovado o máximo de vezes possivel! Renove na biblioteca")
  72.        else:
  73.            linha.find_element(By.XPATH, "/html/body/div[1]/div[2]/section/div[2]/div/div[2]/div[3]/table/tbody/tr[1]/td[7]/a").click()
  74.            Alert(driver).accept()
  75.  
  76.            element = WebDriverWait(driver, 50).until(EC.presence_of_element_located((By.CLASS_NAME, "tabelaDefault")))
  77.            tabela_livros = driver.find_element(By.XPATH, "//*[@id='containerAbasConsulta']/div[3]/table/tbody")
  78.            
  79.            linhas = tabela_livros.find_elements(By.TAG_NAME, "tr")
  80.            
  81.            print("Livro renovado")
  82.    else:
  83.        print("Ainda nao está na hora de renovar este livro")
  84.  
  85.    print("\n")
  86.    
  87. #driver.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement