import os
from services.my_slack import send_slack_message

def take_full_page_screenshot(driver, directory, file_name):
    # ディレクトリが存在しない場合は作成
    if not os.path.exists(directory):
        os.makedirs(directory)
    
    # ページの高さを取得
    total_height = driver.execute_script("return document.body.scrollHeight")
    # ウィンドウの高さを取得
    viewport_height = driver.execute_script("return window.innerHeight")
    # ウィンドウサイズを設定（幅はそのままで高さだけを全体に設定）
    driver.set_window_size(1920, total_height)

    # ファイルパスを作成（ファイル名が.pngで終わることを確認）
    if not file_name.endswith(".png"):
        file_name += ".png"
    file_path = os.path.join(directory, file_name)

    print(f"Saving screenshot to: {file_path}")
    
    # スクリーンショットを取る
    success = driver.save_screenshot(file_path)
    if not success:
        message = "<!subteam^S08AB4JUL92>【レイス自動エントリー】スクリーンショットの保存に失敗しました。"
        send_slack_message(message, "WEBHOOK_URL_CS_NOTICE")
        print(f"Failed to save screenshot to: {file_path}")
    else:
        print(f"Screenshot saved to: {file_path}")

    # 元のウィンドウサイズに戻す
    driver.set_window_size(1920, viewport_height)
    return file_path