Skip to content

Commit e087411

Browse files
authored
Merge pull request #401 from Qtoss-Alpha/master
Add Highlight to ElementLocatingArgs
2 parents 08acf16 + 8e9afae commit e087411

25 files changed

+95
-46
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace BotSharp.Abstraction.Browsing.Enums;
2+
3+
public enum BroswerActionEnum
4+
{
5+
Click = 1,
6+
InputText = 2,
7+
}

src/Infrastructure/BotSharp.Abstraction/Browsing/Models/BrowserActionResult.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ namespace BotSharp.Abstraction.Browsing.Models;
33
public class BrowserActionResult
44
{
55
public bool IsSuccess { get; set; }
6-
public string ErrorMessage { get; set; }
7-
public string StackTrace { get; set; }
6+
public string? Message { get; set; }
7+
public string? StackTrace { get; set; }
88
public string Selector { get; set; }
99
public string Body { get; set; }
10+
public bool IsHighlighted { get; set; }
1011
}
Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
1+
using BotSharp.Abstraction.Browsing.Enums;
2+
13
namespace BotSharp.Abstraction.Browsing.Models;
24

35
public class ElementActionArgs
46
{
5-
private string _action;
6-
public string Action => _action;
7+
private BroswerActionEnum _action;
8+
public BroswerActionEnum Action => _action;
9+
10+
private string _content;
11+
public string Content => _content;
12+
13+
public ElementActionArgs(BroswerActionEnum action)
14+
{
15+
_action = action;
16+
}
717

8-
public ElementActionArgs(string action)
18+
public ElementActionArgs(BroswerActionEnum action, string content)
919
{
1020
_action = action;
21+
_content = content;
1122
}
1223
}

src/Infrastructure/BotSharp.Abstraction/Browsing/Models/ElementLocatingArgs.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,9 @@ public class ElementLocatingArgs
2121
public string? Selector { get; set; }
2222

2323
public bool FailIfMultiple { get; set; }
24+
25+
/// <summary>
26+
/// Draw outline around the element
27+
/// </summary>
28+
public bool Highlight { get; set; }
2429
}

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ public async Task<BrowserActionResult> ChangeCheckbox(BrowserActionParams action
2525
var errorMessage = $"Can't locate element by keyword {actionParams.Context.ElementText}";
2626
if (count == 0)
2727
{
28-
result.ErrorMessage = errorMessage;
28+
result.Message = errorMessage;
2929
return result;
3030
}
3131
else if (count > 1)
3232
{
33-
result.ErrorMessage = $"Located multiple elements by {actionParams.Context.ElementText}";
34-
_logger.LogError(result.ErrorMessage);
33+
result.Message = $"Located multiple elements by {actionParams.Context.ElementText}";
34+
_logger.LogError(result.Message);
3535
var allElements = await elements.AllAsync();
3636
foreach (var element in allElements)
3737
{
@@ -44,7 +44,7 @@ public async Task<BrowserActionResult> ChangeCheckbox(BrowserActionParams action
4444
count = await parentElement.CountAsync();
4545
if (count == 0)
4646
{
47-
result.ErrorMessage = errorMessage;
47+
result.Message = errorMessage;
4848
return result;
4949
}
5050

@@ -61,13 +61,13 @@ public async Task<BrowserActionResult> ChangeCheckbox(BrowserActionParams action
6161

6262
if (count == 0)
6363
{
64-
result.ErrorMessage = errorMessage;
64+
result.Message = errorMessage;
6565
return result;
6666
}
6767
else if (count > 1)
6868
{
69-
result.ErrorMessage = $"Located multiple elements by {actionParams.Context.ElementText}";
70-
_logger.LogError(result.ErrorMessage);
69+
result.Message = $"Located multiple elements by {actionParams.Context.ElementText}";
70+
_logger.LogError(result.Message);
7171
return result;
7272
}
7373

@@ -87,7 +87,7 @@ public async Task<BrowserActionResult> ChangeCheckbox(BrowserActionParams action
8787
}
8888
catch (Exception ex)
8989
{
90-
result.ErrorMessage = ex.Message;
90+
result.Message = ex.Message;
9191
result.StackTrace = ex.StackTrace;
9292
_logger.LogError(ex.Message);
9393
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ await _instance.GetPage(actionParams.ConversationId).EvaluateAsync(@"(element) =
106106
}
107107
catch (Exception ex)
108108
{
109-
result.ErrorMessage = ex.Message;
109+
result.Message = ex.Message;
110110
result.StackTrace = ex.StackTrace;
111111
_logger.LogError(ex.Message);
112112
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ public async Task<BrowserActionResult> CheckRadioButton(BrowserActionParams acti
2222
var errorMessage = $"Can't locate element by keyword {actionParams.Context.ElementText}";
2323
if (count == 0)
2424
{
25-
result.ErrorMessage = errorMessage;
25+
result.Message = errorMessage;
2626
return result;
2727
}
2828

2929
var parentElement = elements.Locator("..");
3030
count = await parentElement.CountAsync();
3131
if (count == 0)
3232
{
33-
result.ErrorMessage = errorMessage;
33+
result.Message = errorMessage;
3434
return result;
3535
}
3636

@@ -40,7 +40,7 @@ public async Task<BrowserActionResult> CheckRadioButton(BrowserActionParams acti
4040

4141
if (count == 0)
4242
{
43-
result.ErrorMessage = errorMessage;
43+
result.Message = errorMessage;
4444
return result;
4545
}
4646

@@ -53,7 +53,7 @@ public async Task<BrowserActionResult> CheckRadioButton(BrowserActionParams acti
5353
}
5454
catch (Exception ex)
5555
{
56-
result.ErrorMessage = ex.Message;
56+
result.Message = ex.Message;
5757
result.StackTrace = ex.StackTrace;
5858
_logger.LogError(ex.Message);
5959
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public async Task<BrowserActionResult> ClickButton(BrowserActionParams actionPar
4646
if (elements == null)
4747
{
4848
var errorMessage = $"Can't locate element by keyword {actionParams.Context.ElementName}";
49-
result.ErrorMessage = errorMessage;
49+
result.Message = errorMessage;
5050
return result;
5151
}
5252
}
@@ -60,7 +60,7 @@ public async Task<BrowserActionResult> ClickButton(BrowserActionParams actionPar
6060
}
6161
catch (Exception ex)
6262
{
63-
result.ErrorMessage = ex.Message;
63+
result.Message = ex.Message;
6464
result.StackTrace = ex.StackTrace;
6565
_logger.LogError(ex.Message);
6666
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ public async Task<BrowserActionResult> ClickElement(BrowserActionParams actionPa
4242

4343
if (count == 0)
4444
{
45-
result.ErrorMessage = $"Can't locate element by keyword {actionParams.Context.ElementText}";
46-
_logger.LogError(result.ErrorMessage);
45+
result.Message = $"Can't locate element by keyword {actionParams.Context.ElementText}";
46+
_logger.LogError(result.Message);
4747
}
4848
else if (count == 1)
4949
{
@@ -57,8 +57,8 @@ public async Task<BrowserActionResult> ClickElement(BrowserActionParams actionPa
5757
}
5858
else if (count > 1)
5959
{
60-
result.ErrorMessage = $"Multiple elements are found by keyword {actionParams.Context.ElementText}";
61-
_logger.LogWarning(result.ErrorMessage);
60+
result.Message = $"Multiple elements are found by keyword {actionParams.Context.ElementText}";
61+
_logger.LogWarning(result.Message);
6262
var all = await locator.AllAsync();
6363
foreach (var element in all)
6464
{

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using BotSharp.Abstraction.Browsing.Enums;
2+
13
namespace BotSharp.Plugin.WebDriver.Drivers.PlaywrightDriver;
24

35
public partial class PlaywrightWebDriver
@@ -7,9 +9,13 @@ public async Task DoAction(MessageInfo message, ElementActionArgs action, Browse
79
var page = _instance.GetPage(message.ConversationId);
810
ILocator locator = page.Locator(result.Selector);
911

10-
if (action.Action == "click")
12+
if (action.Action == BroswerActionEnum.Click)
1113
{
1214
await locator.ClickAsync();
1315
}
16+
else if (action.Action == BroswerActionEnum.InputText)
17+
{
18+
await locator.FillAsync(action.Content);
19+
}
1420
}
1521
}

0 commit comments

Comments
 (0)