diff --git a/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.Screenshot.cs b/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.Screenshot.cs index b74af9c4..74475aac 100644 --- a/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.Screenshot.cs +++ b/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.Screenshot.cs @@ -1,5 +1,3 @@ -using BotSharp.Abstraction.Browsing.Settings; - namespace BotSharp.Plugin.WebDriver.Drivers.PlaywrightDriver; public partial class PlaywrightWebDriver @@ -7,8 +5,7 @@ public partial class PlaywrightWebDriver public async Task ScreenshotAsync(MessageInfo message, string path) { var result = new BrowserActionResult(); - var _webDriver = _services.GetRequiredService(); - if (_webDriver.IsEnableScreenshot) + if (_webBrowsingSettings.IsEnableScreenshot) { await _instance.Wait(message.ContextId, waitNetworkIdle: false); var page = _instance.GetPage(message.ContextId); diff --git a/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.cs b/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.cs index 67c9bf8d..56df622c 100644 --- a/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.cs +++ b/src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.cs @@ -1,4 +1,6 @@ +using BotSharp.Abstraction.Browsing.Settings; + namespace BotSharp.Plugin.WebDriver.Drivers.PlaywrightDriver; public partial class PlaywrightWebDriver : IWebBrowser @@ -6,17 +8,19 @@ public partial class PlaywrightWebDriver : IWebBrowser private IServiceProvider _services => _instance.Services; private readonly PlaywrightInstance _instance; private readonly ILogger _logger; + private readonly WebBrowsingSettings _webBrowsingSettings; public PlaywrightInstance Instance => _instance; public Agent Agent => _agent; private Agent _agent; - public PlaywrightWebDriver(IServiceProvider services, PlaywrightInstance instance, ILogger logger) + public PlaywrightWebDriver(IServiceProvider services, PlaywrightInstance instance, ILogger logger, WebBrowsingSettings webBrowsingSettings) { _instance = instance; _logger = logger; _instance.SetServiceProvider(services); - } + _webBrowsingSettings = webBrowsingSettings; + } public void SetAgent(Agent agent) { diff --git a/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebActionOnElementFn.cs b/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebActionOnElementFn.cs index 8cb9119a..2f616ef4 100644 --- a/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebActionOnElementFn.cs +++ b/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebActionOnElementFn.cs @@ -34,7 +34,8 @@ public class UtilWebActionOnElementFn : IFunctionCallback var conv = _services.GetRequiredService(); - var browser = _services.GetRequiredService(); + var services = _services.CreateScope().ServiceProvider; + var browser = services.GetRequiredService(); var webDriverService = _services.GetRequiredService(); var msg = new MessageInfo { diff --git a/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebCloseBrowserFn.cs b/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebCloseBrowserFn.cs index 36badff3..ff898232 100644 --- a/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebCloseBrowserFn.cs +++ b/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebCloseBrowserFn.cs @@ -19,7 +19,8 @@ public class UtilWebCloseBrowserFn : IFunctionCallback { var conv = _services.GetRequiredService(); var webDriverService = _services.GetRequiredService(); - var browser = _services.GetRequiredService(); + var services = _services.CreateScope().ServiceProvider; + var browser = services.GetRequiredService(); var msg = new MessageInfo { AgentId = message.CurrentAgentId, diff --git a/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebGoToPageFn.cs b/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebGoToPageFn.cs index 0c22d916..465b55f8 100644 --- a/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebGoToPageFn.cs +++ b/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebGoToPageFn.cs @@ -30,7 +30,8 @@ public class UtilWebGoToPageFn : IFunctionCallback var conv = _services.GetRequiredService(); var webDriverService = _services.GetRequiredService(); - var browser = _services.GetRequiredService(); + var services = _services.CreateScope().ServiceProvider; + var browser = services.GetRequiredService(); var msg = new MessageInfo { AgentId = message.CurrentAgentId, diff --git a/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebLocateElementFn.cs b/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebLocateElementFn.cs index 672ad6ad..c40f1be0 100644 --- a/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebLocateElementFn.cs +++ b/src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebLocateElementFn.cs @@ -21,7 +21,8 @@ public class UtilWebLocateElementFn : IFunctionCallback var conv = _services.GetRequiredService(); locatorArgs.Highlight = true; - var browser = _services.GetRequiredService(); + var services = _services.CreateScope().ServiceProvider; + var browser = services.GetRequiredService(); var webDriverService = _services.GetRequiredService(); var msg = new MessageInfo {