import os
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
Chrome WebDriver'ı başlat
driver_path = 'chromedriver.exe'
options = webdriver.ChromeOptions()
options.add_argument('--start-maximized')
driver = webdriver.Chrome(executable_path=driver_path, options=options)
Websiteye git
url = 'https://sfs.turkiyeshell.com/'
driver.get(url)
Giriş yap
customer_code = 'xxxxx'
username = 'xxxxx'
password = 'xxxxxxxx'
customer_code_input = driver.find_element(By.ID, 'CustomerCode')
customer_code_input.send_keys(customer_code)
username_input = driver.find_element(By.ID, 'UserName')
username_input.send_keys(username)
password_input = driver.find_element(By.ID, 'Password')
password_input.send_keys(password)
login_button = driver.find_element(By.ID, 'kt_login_signin_submit1')
login_button.click()
Girişin tamamlanmasını beklemek için bir süre bekle
time.sleep(5)
Tüketim raporu sayfasına git
tuketim_raporu_url = 'https://sfs.turkiyeshell.com/tts/t%C3%BCketim-raporu'
driver.get(tuketim_raporu_url)
Filtre ayarlarını yap
tarih_secim = WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'input[placeholder="Hızlı Tarih Seçimi"]')))
tarih_secim.click()
tarih_bugun = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//li[contains(text(), "Bugün")]')))
tarih_bugun.click()
departman_secim = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'select2-Department-container')))
departman_secim.click()
departman_xxxxxx = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//li[contains(text(), "xxxxxx")]')))
departman_xxxxxx.click()
ara_button = driver.find_element(By.ID, 'invoice-filter-btn')
ara_button.click()
Sonuçların yüklenmesini bekle
time.sleep(10)
Excel'i indir
indir_button = driver.find_element(By.ID, 'download-excel-btn')
indir_button.click()
İndirme işlemini beklemek için bir süre bekle
time.sleep(3)
İndirilen dosyanın tam adını al
indirilen_dosya_adi = None
indirilen_dosya_klasoru = os.path.expanduser('~\\Downloads')
for dosya in os.listdir(indirilen_dosya_klasoru):
if dosya.endswith('.xlsx'):
indirilen_dosya_adi = dosya
break
if indirilen_dosya_adi is None:
print("İndirilen dosya bulunamadı.")
else:
# İndirilen dosyayı hedef klasöre taşı
kayit_yolu = r'C:\Users\X\Desktop\x\x'
hedef_dosya_yolu = os.path.join(kayit_yolu, indirilen_dosya_adi)
os.rename(os.path.join(indirilen_dosya_klasoru, indirilen_dosya_adi), hedef_dosya_yolu)
print("Dosya başarıyla taşındı.")
Pencereleri kapat
driver.quit()
Bu kod iyi çalışıyor ancak;
options.add_argument("--headless")
eklediğim zaman devamlı hata alıyorum.
Nasıl Çözebilirim?
(Not:Sitenin güvenlik önemli yüzünden request ile yapamıyorum.)