123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- # from selenium.webdriver.common.alert import Alert
- import os
- import sys
- import traceback
- from time import sleep
- from collections import deque
- from threading import Thread, Event
- import keyboard as kb
- import pywinctl as gw
- from selenium import webdriver
- from selenium.webdriver import ChromeOptions
- from selenium.webdriver.support import ui
- from selenium.webdriver.common.by import By
- from selenium.common.exceptions import (
- NoSuchElementException,
- ElementClickInterceptedException,
- StaleElementReferenceException,
- TimeoutException,
- WebDriverException
- )
- import yagmail
- # from envelopes import Envelope
- def pretty_exc():
- exc_type, exc_obj, exc_tb = sys.exc_info()
- for tb in list(traceback.format_exception(exc_type, exc_obj, exc_tb)):
- print(tb)
- def accept_cert():
- # brave_ready.wait()
- sleep(3)
- kb.press_and_release('enter')
- sleep(1)
- try:
- sleep(4)
- kb.write(os.getenv('PKCS11PIN'), 0.05)
- sleep(1)
- kb.press_and_release('enter')
- except Exception:
- pass
- brave_ready = Event()
- last_ = deque(maxlen=500)
- env2 = yagmail.SMTP(user='claudia.conta.ab@gmail.com', password='abconsult')
- subject = 'new message in SPV'
- all_element_exceptions = (
- NoSuchElementException,
- ElementClickInterceptedException,
- StaleElementReferenceException,
- WebDriverException, TimeoutException
- )
- chrome_options = ChromeOptions()
- chrome_options.add_argument('--disable-dev-shm-usage')
- chrome_options.add_argument('--no-sandbox')
- chrome_options.add_argument('--disable-gpu')
- chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
- chrome_options.add_argument('user-data-dir=d:/py_scripts/__anaf__')
- # chrome_options.binary_location = 'C:/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe'
- m_url = 'https://www.anaf.ro/auth_status.html'
- m_url2 = 'https://www.anaf.ro/anaf/myinternet/SPV/mesaje'
- driver = webdriver.Chrome(options=chrome_options)
- thread = Thread(target=accept_cert, args=())
- thread.start()
- driver.switch_to.window(driver.current_window_handle)
- driver.get(m_url)
- while True:
- sleep(0.5)
- # try:
- # pup = ui.WebDriverWait(driver, 5).until(lambda driver: driver.find_element(By.XPATH, '/html/body/div[4]/div[3]/div/button/span'))
- # pup.click()
- # except (NoSuchElementException, TimeoutException) as exc:
- # pretty_exc()
- try:
- driver.switch_to.default_content()
- except TimeoutException:
- pass
- # t2 = 10
- # while t2 >= 0:
- # print(f'refreshing in {t2}', end='\r', flush=True)
- # sleep(1)
- # t2 -= 1
- t = 210
- try:
- driver.get(m_url2)
- # driver.switch_to.default_content()
- print(f'connecting to {m_url}')
- try:
- _frame = driver.find_elements(By.TAG_NAME, 'iframe')[0]; sleep(1)
- driver.switch_to.frame(_frame); sleep(1)
- except IndexError:
- pretty_exc()
- # table_ = browser.find_element(By.ID, 'form:MesajeTable_data')
- # print(table_.text)
- first_row = driver.find_element(By.XPATH, '//*[@id="form:MesajeTable_data"]/tr[1]') # '//*[@id="form:MesajeTable_data"]/tr[1]'
- message = first_row.text
- last_.appendleft(message)
- print(message)
- if 'recipisa' not in message and 'RASPUNS SOLICITARE' not in message:
- if message not in last_:
- body = message
- # env2.send(to='claudia.conta.ab@gmail.com', subject=subject, contents=body)
- while t >= 0:
- mins, secs = divmod(t, 60)
- timeformat = '{:02d}:{:02d}'.format(mins, secs)
- print('...refreshing', timeformat, end='\r', flush=True)
- sleep(1)
- t -= 1
- except all_element_exceptions:
- pretty_exc()
- print(f'redirecting to {m_url}')
- thread = Thread(target=accept_cert, args=())
- thread.start()
- driver.switch_to.window(driver.current_window_handle)
- try:
- token_logon = gw.getWindowsWithTitle('Token Logon')[0]
- token_logon.activate()
- except IndexError:
- pass
- try:
- driver.get(m_url) # get https://www.anaf.ro/auth_status.htmls
- except Exception as exc:
- print(str(exc))
- # browser.refresh()
- # browser.find_element(By.XPATH, '/html/body/div/header/div[2]/ul/li[1]/a').click(); sleep(1)
- # t3 = 60
- # while t3 >= 0:
- # print(f'sleeping for {t3}', end='\r', flush=True)
- # sleep(1)
- # t3 -= 1
- # browser.get('https://www.anaf.ro/auth_status.html') # browser.find_element(By.XPATH, '/html/body/table[2]/tbody/tr[1]/td/b[2]/a').click()
- # '/html/body/div[1]/div[4]/div/div[3]/ul/li[3]/span/a/span'
|