using Microsoft.Playwright;
namespace BomLocalService.Utilities;
public static class SelectorHelper
{
///
/// Tries to find a locator by trying multiple selectors in order
/// Returns the first visible locator found, or null if none found
///
public static async Task FindLocatorBySelectorsAsync(
IPage page,
string[] selectors,
ILogger? logger = null)
{
foreach (var selector in selectors)
{
try
{
var locator = page.Locator(selector).First;
if (await locator.IsVisibleAsync())
{
logger?.LogInformation("Found element with selector: {Selector}", selector);
return locator;
}
}
catch
{
// Continue to next selector
continue;
}
}
return null;
}
}