locatai-ts
Version:
Enterprise-grade AI-powered element locator for Selenium WebDriver - TypeScript implementation
79 lines • 3.15 kB
TypeScript
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