import Foundation /// Describes any errors that can happen with the PageFetcher. public enum PageFetcherError: Error, LocalizedError { case sessionCreationFailed case invalidSessionResponse case noActiveSession case seleniumError(Int, String) case requestFailed case invalidPageSourceResponse public var errorDescription: String? { switch self { case .sessionCreationFailed: "Failed to create WebDriver session" case .invalidSessionResponse: "Invalid response when creating WebDriver session" case .noActiveSession: "No active WebDriver session" case let .seleniumError(code, message): "Selenium error (HTTP \(code)): \(message)" case .requestFailed: "Failed to make request" case .invalidPageSourceResponse: "Invalid response when getting page source" } } }