This commit is contained in:
parent
c42af085fb
commit
2445cb31e0
|
|
@ -57,7 +57,10 @@ public partial class PlaywrightWebDriver
|
||||||
}
|
}
|
||||||
|
|
||||||
var driverService = _services.GetRequiredService<WebDriverService>();
|
var driverService = _services.GetRequiredService<WebDriverService>();
|
||||||
var htmlElementContextOut = await driverService.LocateElement(agent, string.Join("", str), context.ElementName, messageId);
|
var htmlElementContextOut = await driverService.LocateElement(agent,
|
||||||
|
string.Join("", str),
|
||||||
|
context.ElementName,
|
||||||
|
messageId);
|
||||||
ILocator element = Locator(htmlElementContextOut);
|
ILocator element = Locator(htmlElementContextOut);
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
using BotSharp.Plugin.WebDriver.Services;
|
|
||||||
|
|
||||||
namespace BotSharp.Plugin.WebDriver.Drivers.PlaywrightDriver;
|
namespace BotSharp.Plugin.WebDriver.Drivers.PlaywrightDriver;
|
||||||
|
|
||||||
public partial class PlaywrightWebDriver
|
public partial class PlaywrightWebDriver
|
||||||
{
|
{
|
||||||
public async Task ClickElement(Agent agent, BrowsingContextIn context, string messageId)
|
public async Task ClickElement(Agent agent, BrowsingContextIn context, string messageId)
|
||||||
{
|
{
|
||||||
|
var driverService = _services.GetRequiredService<WebDriverService>();
|
||||||
|
|
||||||
// Retrieve the page raw html and infer the element path
|
// Retrieve the page raw html and infer the element path
|
||||||
var body = await _instance.Page.QuerySelectorAsync("body");
|
var body = await _instance.Page.QuerySelectorAsync("body");
|
||||||
|
|
||||||
|
|
@ -23,18 +23,19 @@ public partial class PlaywrightWebDriver
|
||||||
var text = await btn.TextContentAsync();
|
var text = await btn.TextContentAsync();
|
||||||
var name = await btn.GetAttributeAsync("name");
|
var name = await btn.GetAttributeAsync("name");
|
||||||
var id = await btn.GetAttributeAsync("id");
|
var id = await btn.GetAttributeAsync("id");
|
||||||
str.Add($"<button name='{name}' id='{id}'>{text}</button>");
|
str.Add(driverService.AssembleMarkup("button", new MarkupProperties
|
||||||
}
|
|
||||||
|
|
||||||
var driverService = _services.GetRequiredService<WebDriverService>();
|
|
||||||
var htmlElementContextOut = await driverService.LocateElement(agent, string.Join("", str), context.ElementName, messageId);
|
|
||||||
|
|
||||||
var tags = await _instance.Page.QuerySelectorAllAsync(htmlElementContextOut.TagName);
|
|
||||||
var button = tags[htmlElementContextOut.Index];
|
|
||||||
if (button.AsElement() == null)
|
|
||||||
{
|
{
|
||||||
throw new Exception($"Can't find web element {context.ElementName}");
|
Id = id,
|
||||||
|
Name = name,
|
||||||
|
Text = text
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
await button.ClickAsync();
|
|
||||||
|
var htmlElementContextOut = await driverService.LocateElement(agent,
|
||||||
|
string.Join("", str),
|
||||||
|
context.ElementName,
|
||||||
|
messageId);
|
||||||
|
ILocator element = Locator(htmlElementContextOut);
|
||||||
|
await element.ClickAsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,10 @@ public partial class PlaywrightWebDriver
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
var htmlElementContextOut = await driverService.LocateElement(agent, string.Join("", str), context.ElementName, messageId);
|
var htmlElementContextOut = await driverService.LocateElement(agent,
|
||||||
|
string.Join("", str),
|
||||||
|
context.ElementName,
|
||||||
|
messageId);
|
||||||
ILocator element = Locator(htmlElementContextOut);
|
ILocator element = Locator(htmlElementContextOut);
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@ namespace BotSharp.Plugin.WebDriver.Models;
|
||||||
|
|
||||||
internal class MarkupProperties
|
internal class MarkupProperties
|
||||||
{
|
{
|
||||||
public string Id { get; set; }
|
public string? Id { get; set; }
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
public string Type { get; set; }
|
public string? Type { get; set; }
|
||||||
public string Text { get; set; }
|
public string? Text { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue