Skip to content

Commit 2445cb3

Browse files
committed
1 parent c42af08 commit 2445cb3

4 files changed

Lines changed: 26 additions & 19 deletions

File tree

‎src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.ChangeListValue.cs‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,10 @@ public async Task ChangeListValue(Agent agent, BrowsingContextIn context, string
5757
}
5858

5959
var driverService = _services.GetRequiredService<WebDriverService>();
60-
var htmlElementContextOut = await driverService.LocateElement(agent, string.Join("", str), context.ElementName, messageId);
60+
var htmlElementContextOut = await driverService.LocateElement(agent,
61+
string.Join("", str),
62+
context.ElementName,
63+
messageId);
6164
ILocator element = Locator(htmlElementContextOut);
6265

6366
try
Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
using BotSharp.Plugin.WebDriver.Services;
2-
31
namespace BotSharp.Plugin.WebDriver.Drivers.PlaywrightDriver;
42

53
public partial class PlaywrightWebDriver
64
{
75
public async Task ClickElement(Agent agent, BrowsingContextIn context, string messageId)
86
{
7+
var driverService = _services.GetRequiredService<WebDriverService>();
8+
99
// Retrieve the page raw html and infer the element path
1010
var body = await _instance.Page.QuerySelectorAsync("body");
1111

@@ -23,18 +23,19 @@ public async Task ClickElement(Agent agent, BrowsingContextIn context, string me
2323
var text = await btn.TextContentAsync();
2424
var name = await btn.GetAttributeAsync("name");
2525
var id = await btn.GetAttributeAsync("id");
26-
str.Add($"<button name='{name}' id='{id}'>{text}</button>");
26+
str.Add(driverService.AssembleMarkup("button", new MarkupProperties
27+
{
28+
Id = id,
29+
Name = name,
30+
Text = text
31+
}));
2732
}
2833

29-
var driverService = _services.GetRequiredService<WebDriverService>();
30-
var htmlElementContextOut = await driverService.LocateElement(agent, string.Join("", str), context.ElementName, messageId);
31-
32-
var tags = await _instance.Page.QuerySelectorAllAsync(htmlElementContextOut.TagName);
33-
var button = tags[htmlElementContextOut.Index];
34-
if (button.AsElement() == null)
35-
{
36-
throw new Exception($"Can't find web element {context.ElementName}");
37-
}
38-
await button.ClickAsync();
34+
var htmlElementContextOut = await driverService.LocateElement(agent,
35+
string.Join("", str),
36+
context.ElementName,
37+
messageId);
38+
ILocator element = Locator(htmlElementContextOut);
39+
await element.ClickAsync();
3940
}
4041
}

‎src/Plugins/BotSharp.Plugin.WebDriver/Drivers/PlaywrightDriver/PlaywrightWebDriver.InputUserText.cs‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ public async Task InputUserText(Agent agent, BrowsingContextIn context, string m
4242
}));
4343
}
4444

45-
var htmlElementContextOut = await driverService.LocateElement(agent, string.Join("", str), context.ElementName, messageId);
45+
var htmlElementContextOut = await driverService.LocateElement(agent,
46+
string.Join("", str),
47+
context.ElementName,
48+
messageId);
4649
ILocator element = Locator(htmlElementContextOut);
4750

4851
try

‎src/Plugins/BotSharp.Plugin.WebDriver/Models/MarkupProperties.cs‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ namespace BotSharp.Plugin.WebDriver.Models;
22

33
internal class MarkupProperties
44
{
5-
public string Id { get; set; }
6-
public string Name { get; set; }
7-
public string Type { get; set; }
8-
public string Text { get; set; }
5+
public string? Id { get; set; }
6+
public string? Name { get; set; }
7+
public string? Type { get; set; }
8+
public string? Text { get; set; }
99
}

0 commit comments

Comments
 (0)