mirror of
https://github.com/alexhopeoconnor/bom-local-service.git
synced 2026-10-03 21:21:59 +10:00
38 lines
976 B
C#
38 lines
976 B
C#
using Microsoft.Playwright;
|
|
|
|
namespace BomLocalService.Utilities;
|
|
|
|
public static class SelectorHelper
|
|
{
|
|
/// <summary>
|
|
/// Tries to find a locator by trying multiple selectors in order
|
|
/// Returns the first visible locator found, or null if none found
|
|
/// </summary>
|
|
public static async Task<ILocator?> 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;
|
|
}
|
|
}
|
|
|