UNPKG

locatai-ts

Version:

Enterprise-grade AI-powered element locator for Selenium WebDriver - TypeScript implementation

79 lines 3.15 kB
import { WebDriver, WebElement } from 'selenium-webdriver'; import { IAIProvider, ElementLocator, IElementFinder } from '../AIProviders/types'; import { ILocatorCache } from '../Caching/ILocatorCache'; import { ILocatorStats } from '../Caching/ILocatorStats'; import { ILocatorTiming } from '../Caching/ILocatorTiming'; import { LocatAIOptions } from '../Models/LocatAIOptions'; export declare class ElementFinder implements IElementFinder { private static provider; private static _cache; private static _stats; private static _timing; private static _options; /** * Initialize the ElementFinder with an AI provider and optional configuration * @param provider The AI provider to use for generating locators * @param options Optional configuration options */ static initialize(provider: IAIProvider, options?: Partial<LocatAIOptions>): void; /** * Configure the cache implementation * @param cache The cache implementation to use */ static configureCache(cache: ILocatorCache): void; /** * Configure the statistics implementation * @param stats The statistics implementation to use */ static configureStats(stats: ILocatorStats): void; /** * Configure the timing implementation * @param timing The timing implementation to use */ static configureTiming(timing: ILocatorTiming): void; /** * Configure LocatAI options * @param options The options to apply */ static configureOptions(options: Partial<LocatAIOptions>): void; /** * Generate a hash of the DOM content * @param domContent The DOM content to hash * @returns A hash string */ private hashDom; /** * Find an element using AI-generated locators * @param driver The WebDriver instance * @param elementDescription Natural language description of the element * @returns A WebElement if found */ findElementByLocatAI(driver: WebDriver, elementDescription: string): Promise<WebElement>; /** * Generate locators for an element description * @param driver The WebDriver instance * @param elementDescription Natural language description of the element * @param retryAttempt Optional retry attempt number (for modifying the prompt) * @returns Array of element locators */ private generateLocators; /** * Parse a single locator string * @param locatorString Raw locator string * @returns Parsed ElementLocator object */ parseLocatorString(locatorString: string): ElementLocator; /** * Parses a collection of locator strings into structured locator objects * @param locatorStrings Array of raw locator strings from the AI * @param providerType The provider type name for provider-specific parsing * @returns Array of parsed ElementLocator objects */ private parseLocators; private mapConfidenceTextToValue; private determineLocatorTypeFromValue; private normalizeLocatorType; private cleanOllamaResponse; private findElementByLocator; } //# sourceMappingURL=ElementFinder.d.ts.map