diff --git a/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.LocateElement.cs b/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.LocateElement.cs index 8695fc5c..613d2b22 100644 --- a/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.LocateElement.cs +++ b/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.LocateElement.cs @@ -14,6 +14,13 @@ public partial class PlaywrightWebDriver { var result = new BrowserActionResult(); var page = _instance.GetPage(message.ContextId); + if (page == null) + { + return new BrowserActionResult + { + IsSuccess = false + }; + } ILocator locator = page.Locator("body"); int count = 0; diff --git a/src/Plugins/BotSharp.Plugin.WebDriver/WebPageHelper.cs b/src/Plugins/BotSharp.Plugin.WebDriver/WebPageHelper.cs index 113403eb..aaf61aa4 100644 --- a/src/Plugins/BotSharp.Plugin.WebDriver/WebPageHelper.cs +++ b/src/Plugins/BotSharp.Plugin.WebDriver/WebPageHelper.cs @@ -1,10 +1,25 @@ using HtmlAgilityPack; -using System.Net.Http; namespace BotSharp.Plugin.WebDriver; public static class WebPageHelper { + public static HtmlNode GetElement(string html, string selector) + { + var htmlDoc = new HtmlDocument(); + htmlDoc.LoadHtml(html); + + return htmlDoc.DocumentNode.SelectSingleNode(selector); + } + + public static HtmlNodeCollection GetElements(string html, string selector) + { + var htmlDoc = new HtmlDocument(); + htmlDoc.LoadHtml(html); + + return htmlDoc.DocumentNode.SelectNodes(selector); + } + public static string RemoveElements(string html, string selector) { var htmlDoc = new HtmlDocument();