Skip to content

Commit 5d1c1c1

Browse files
authored
Merge pull request #1096 from visagang/features/vguruparan
Add hook to handle locate element for PlayWright
2 parents 5adaa3a + b9c7f63 commit 5d1c1c1

File tree

4 files changed

+8
-1
lines changed

4 files changed

+8
-1
lines changed

src/Infrastructure/BotSharp.Abstraction/Browsing/IWebDriverHook.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ namespace BotSharp.Abstraction.Browsing;
55
public interface IWebDriverHook
66
{
77
Task<List<string>> GetUploadFiles(MessageInfo message);
8+
Task OnLocateElement(MessageInfo message, string content);
89
}

src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.LocateElement.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@ public async Task<BrowserActionResult> LocateElement(MessageInfo message, Elemen
114114
// fix if html has &
115115
result.Body = HttpUtility.HtmlDecode(html);
116116
result.IsSuccess = true;
117+
var hooks = _services.GetServices<IWebDriverHook>();
118+
foreach (var hook in hooks)
119+
{
120+
await hook.OnLocateElement(message, result.Body);
121+
}
117122
}
118123
else if (count > 1)
119124
{

src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebCloseBrowserFn.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public async Task<bool> Execute(RoleDialogModel message)
2828
ContextId = webDriverService.GetMessageContext(message)
2929
};
3030

31-
await browser.CloseBrowser(message.CurrentAgentId);
31+
await browser.CloseBrowser(msg.ContextId);
3232

3333
message.Content = $"Browser closed.";
3434

src/Plugins/BotSharp.Plugin.WebDriver/UtilFunctions/UtilWebLocateElementFn.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public async Task<bool> Execute(RoleDialogModel message)
3030
MessageId = message.MessageId,
3131
ContextId = webDriverService.GetMessageContext(message)
3232
};
33+
browser.SetServiceProvider(_services);
3334
var result = await browser.LocateElement(msg, locatorArgs);
3435

3536
message.Content = $"Locating element {(result.IsSuccess ? "success" : "failed")}. ";

0 commit comments

Comments
 (0)