How to use ElementHandleChannel method of Microsoft.Playwright.Transport.Channels.ElementHandleChannel class

Best Playwright-dotnet code snippet using Microsoft.Playwright.Transport.Channels.ElementHandleChannel.ElementHandleChannel

Frame.cs

Source:Frame.cs Github

copy

Full Screen

...384 => _channel.InputValueAsync(selector, options?.Timeout, options?.Strict);385 public async Task<IElementHandle> QuerySelectorAsync(string selector)386 => (await _channel.QuerySelectorAsync(selector).ConfigureAwait(false))?.Object;387 public async Task<IReadOnlyList<IElementHandle>> QuerySelectorAllAsync(string selector)388 => (await _channel.QuerySelectorAllAsync(selector).ConfigureAwait(false)).Select(c => ((ElementHandleChannel)c).Object).ToList().AsReadOnly();389 public async Task<IJSHandle> WaitForFunctionAsync(string expression, object arg = default, FrameWaitForFunctionOptions options = default)390 => (await _channel.WaitForFunctionAsync(391 expression: expression,392 arg: ScriptsHelper.SerializedArgument(arg),393 timeout: options?.Timeout,394 polling: options?.PollingInterval).ConfigureAwait(false)).Object;395 public async Task<IElementHandle> WaitForSelectorAsync(string selector, FrameWaitForSelectorOptions options = default)396 => (await _channel.WaitForSelectorAsync(397 selector: selector,398 state: options?.State,399 timeout: options?.Timeout,400 strict: options?.Strict,401 omitReturnValue: false).ConfigureAwait(false))?.Object;402 public async Task<IElementHandle> LocatorWaitForAsync(string selector, LocatorWaitForOptions options = default)...

Full Screen

Full Screen

FrameChannel.cs

Source:FrameChannel.cs Github

copy

Full Screen

...57 serverParams?.ToObject<FrameChannelLoadStateEventArgs>(Connection.DefaultJsonSerializerOptions));58 break;59 }60 }61 internal Task<ElementHandleChannel> QuerySelectorAsync(string selector, bool? strict)62 {63 var args = new Dictionary<string, object>64 {65 ["selector"] = selector,66 ["strict"] = strict,67 };68 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "querySelector", args);69 }70 internal Task<ResponseChannel> GotoAsync(string url, float? timeout, WaitUntilState? waitUntil, string referer)71 {72 var args = new Dictionary<string, object>73 {74 ["url"] = url,75 ["timeout"] = timeout,76 ["waitUntil"] = waitUntil,77 ["referer"] = referer,78 };79 return Connection.SendMessageToServerAsync<ResponseChannel>(Guid, "goto", args);80 }81 internal Task<JSHandleChannel> EvaluateExpressionHandleAsync(82 string script,83 object arg)84 {85 return Connection.SendMessageToServerAsync<JSHandleChannel>(86 Guid,87 "evaluateExpressionHandle",88 new Dictionary<string, object>89 {90 ["expression"] = script,91 ["arg"] = arg,92 });93 }94 internal Task<JSHandleChannel> WaitForFunctionAsync(95 string expression,96 object arg,97 float? timeout,98 float? polling)99 {100 var args = new Dictionary<string, object>101 {102 ["expression"] = expression,103 ["arg"] = arg,104 ["timeout"] = timeout,105 ["pollingInterval"] = polling,106 };107 return Connection.SendMessageToServerAsync<JSHandleChannel>(108 Guid,109 "waitForFunction",110 args);111 }112 internal Task<JsonElement?> EvaluateExpressionAsync(113 string script,114 object arg)115 {116 return Connection.SendMessageToServerAsync<JsonElement?>(117 Guid,118 "evaluateExpression",119 new Dictionary<string, object>120 {121 ["expression"] = script,122 ["arg"] = arg,123 });124 }125 internal Task<JsonElement?> EvalOnSelectorAsync(string selector, string script, object arg, bool? strict)126 => Connection.SendMessageToServerAsync<JsonElement?>(127 Guid,128 "evalOnSelector",129 new Dictionary<string, object>130 {131 ["selector"] = selector,132 ["expression"] = script,133 ["arg"] = arg,134 ["strict"] = strict,135 });136 internal Task<JsonElement?> EvalOnSelectorAllAsync(string selector, string script, object arg)137 => Connection.SendMessageToServerAsync<JsonElement?>(138 Guid,139 "evalOnSelectorAll",140 new Dictionary<string, object>141 {142 ["selector"] = selector,143 ["expression"] = script,144 ["arg"] = arg,145 });146 internal Task<ElementHandleChannel> FrameElementAsync() => Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "frameElement", null);147 internal async Task<string> TitleAsync()148 => (await Connection.SendMessageToServerAsync(Guid, "title", null).ConfigureAwait(false))?.GetProperty("value").ToString();149 internal Task<ElementHandleChannel> WaitForSelectorAsync(string selector, WaitForSelectorState? state, float? timeout, bool? strict, bool? omitReturnValue)150 {151 var args = new Dictionary<string, object>152 {153 ["selector"] = selector,154 ["timeout"] = timeout,155 ["state"] = state,156 ["strict"] = strict,157 ["omitReturnValue"] = omitReturnValue,158 };159 return Connection.SendMessageToServerAsync<ElementHandleChannel>(160 Guid,161 "waitForSelector",162 args);163 }164 internal Task WaitForTimeoutAsync(float timeout)165 {166 var args = new Dictionary<string, object>167 {168 ["timeout"] = timeout,169 };170 return Connection.SendMessageToServerAsync<ElementHandleChannel>(171 Guid,172 "waitForTimeout",173 args);174 }175 internal Task<ElementHandleChannel> AddScriptTagAsync(string url, string path, string content, string type)176 {177 var args = new Dictionary<string, object>178 {179 ["url"] = url,180 ["path"] = path,181 ["content"] = content,182 ["type"] = type,183 };184 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "addScriptTag", args);185 }186 internal Task<ElementHandleChannel> AddStyleTagAsync(string url, string path, string content)187 {188 var args = new Dictionary<string, object>189 {190 ["url"] = url,191 ["path"] = path,192 ["content"] = content,193 };194 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "addStyleTag", args);195 }196 internal Task<ResponseChannel> WaitForNavigationAsync(LoadState? waitUntil, string url, float? timeout)197 {198 var param = new Dictionary<string, object>199 {200 ["timeout"] = timeout,201 ["url"] = url,202 ["waitUntil"] = waitUntil,203 };204 return Connection.SendMessageToServerAsync<ResponseChannel>(Guid, "waitForNavigation", param);205 }206 internal Task WaitForLoadStateAsync(LoadState? state, float? timeout)207 {208 var param = new Dictionary<string, object>209 {210 ["timeout"] = timeout,211 ["state"] = state,212 };213 return Connection.SendMessageToServerAsync(214 Guid,215 "waitForLoadState",216 param);217 }218 internal async Task<int> QueryCountAsync(string selector)219 {220 var args = new Dictionary<string, object>221 {222 ["selector"] = selector,223 };224 var result = await Connection.SendMessageToServerAsync(Guid, "queryCount", args).ConfigureAwait(false);225 return result.Value.GetProperty("value").GetInt32();226 }227 internal Task SetContentAsync(string html, float? timeout, WaitUntilState? waitUntil)228 {229 var args = new Dictionary<string, object>230 {231 ["html"] = html,232 ["waitUntil"] = waitUntil,233 ["timeout"] = timeout,234 };235 return Connection.SendMessageToServerAsync(Guid, "setContent", args);236 }237 internal Task ClickAsync(238 string selector,239 float? delay,240 MouseButton? button,241 int? clickCount,242 IEnumerable<KeyboardModifier> modifiers,243 Position position,244 float? timeout,245 bool? force,246 bool? noWaitAfter,247 bool? trial,248 bool? strict)249 {250 var args = new Dictionary<string, object>251 {252 ["selector"] = selector,253 ["button"] = button,254 ["force"] = force,255 ["delay"] = delay,256 ["clickCount"] = clickCount,257 ["modifiers"] = modifiers?.Select(m => m.ToValueString()),258 ["position"] = position,259 ["noWaitAfter"] = noWaitAfter,260 ["trial"] = trial,261 ["timeout"] = timeout,262 ["strict"] = strict,263 };264 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "click", args);265 }266 internal Task DblClickAsync(267 string selector,268 float? delay,269 MouseButton? button,270 Position position,271 IEnumerable<KeyboardModifier> modifiers,272 float? timeout,273 bool? force,274 bool? noWaitAfter,275 bool? trial,276 bool? strict)277 {278 var args = new Dictionary<string, object>279 {280 ["selector"] = selector,281 ["button"] = button,282 ["delay"] = delay,283 ["force"] = force,284 ["modifiers"] = modifiers?.Select(m => m.ToValueString()),285 ["position"] = position,286 ["trial"] = trial,287 ["timeout"] = timeout,288 ["noWaitAfter"] = noWaitAfter,289 ["strict"] = strict,290 };291 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "dblclick", args);292 }293 internal Task<ElementHandleChannel> QuerySelectorAsync(string selector)294 => Connection.SendMessageToServerAsync<ElementHandleChannel>(295 Guid,296 "querySelector",297 new Dictionary<string, object>298 {299 ["selector"] = selector,300 });301 internal Task<ChannelBase[]> QuerySelectorAllAsync(string selector)302 => Connection.SendMessageToServerAsync<ChannelBase[]>(303 Guid,304 "querySelectorAll",305 new Dictionary<string, object>306 {307 ["selector"] = selector,308 });309 internal Task FillAsync(string selector, string value, bool? force, float? timeout, bool? noWaitAfter, bool? strict)310 {311 var args = new Dictionary<string, object>312 {313 ["selector"] = selector,314 ["value"] = value,315 ["force"] = force,316 ["timeout"] = timeout,317 ["noWaitAfter"] = noWaitAfter,318 ["strict"] = strict,319 };320 return Connection.SendMessageToServerAsync(Guid, "fill", args);321 }322 internal Task CheckAsync(string selector, Position position, float? timeout, bool? force, bool? noWaitAfter, bool? trial, bool? strict)323 {324 var args = new Dictionary<string, object>325 {326 ["selector"] = selector,327 ["force"] = force,328 ["position"] = position,329 ["noWaitAfter"] = noWaitAfter,330 ["trial"] = trial,331 ["timeout"] = timeout,332 ["strict"] = strict,333 };334 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "check", args);335 }336 internal Task UncheckAsync(string selector, Position position, float? timeout, bool? force, bool? noWaitAfter, bool? trial, bool? strict)337 {338 var args = new Dictionary<string, object>339 {340 ["selector"] = selector,341 ["force"] = force,342 ["position"] = position,343 ["noWaitAfter"] = noWaitAfter,344 ["trial"] = trial,345 ["timeout"] = timeout,346 ["strict"] = strict,347 };348 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "uncheck", args);349 }350 internal Task DispatchEventAsync(string selector, string type, object eventInit, float? timeout, bool? strict)351 {352 var args = new Dictionary<string, object>353 {354 ["selector"] = selector,355 ["type"] = type,356 ["eventInit"] = eventInit,357 ["timeout"] = timeout,358 ["strict"] = strict,359 };360 return Connection.SendMessageToServerAsync(Guid, "dispatchEvent", args);361 }362 internal Task HoverAsync(...

Full Screen

Full Screen

ElementHandleChannel.cs

Source:ElementHandleChannel.cs Github

copy

Full Screen

...31using Microsoft.Playwright.Helpers;32using Microsoft.Playwright.Transport.Protocol;33namespace Microsoft.Playwright.Transport.Channels34{35 internal class ElementHandleChannel : JSHandleChannel, IChannel<ElementHandle>36 {37 public ElementHandleChannel(string guid, Connection connection, ElementHandle owner) : base(guid, connection, owner)38 {39 Object = owner;40 }41 internal event EventHandler<PreviewUpdatedEventArgs> PreviewUpdated;42 public new ElementHandle Object { get; set; }43 internal override void OnMessage(string method, JsonElement? serverParams)44 {45 switch (method)46 {47 case "previewUpdated":48 PreviewUpdated?.Invoke(this, new() { Preview = serverParams.Value.GetProperty("preview").ToString() });49 break;50 }51 }52 internal Task<ElementHandleChannel> WaitForSelectorAsync(string selector, WaitForSelectorState? state, float? timeout, bool? strict)53 {54 var args = new Dictionary<string, object>55 {56 ["selector"] = selector,57 ["timeout"] = timeout,58 ["state"] = state,59 ["strict"] = strict,60 };61 return Connection.SendMessageToServerAsync<ElementHandleChannel>(62 Guid,63 "waitForSelector",64 args);65 }66 internal Task<ElementHandleChannel> QuerySelectorAsync(string selector)67 => Connection.SendMessageToServerAsync<ElementHandleChannel>(68 Guid,69 "querySelector",70 new Dictionary<string, object>71 {72 ["selector"] = selector,73 });74 internal Task WaitForElementStateAsync(ElementState state, float? timeout)75 {76 var args = new Dictionary<string, object>77 {78 ["state"] = state,79 ["timeout"] = timeout,80 };81 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "waitForElementState", args);82 }83 internal Task<ChannelBase[]> QuerySelectorAllAsync(string selector)84 => Connection.SendMessageToServerAsync<ChannelBase[]>(85 Guid,86 "querySelectorAll",87 new Dictionary<string, object>88 {89 ["selector"] = selector,90 });91 internal async Task<byte[]> ScreenshotAsync(string path, bool? omitBackground, ScreenshotType? type, int? quality, IEnumerable<ILocator> mask, ScreenshotAnimations? animations, ScreenshotCaret? caret, ScreenshotScale? scale, float? timeout)92 {93 var args = new Dictionary<string, object>94 {95 ["type"] = type,96 ["omitBackground"] = omitBackground,97 ["path"] = path,98 ["timeout"] = timeout,99 ["animations"] = animations,100 ["caret"] = caret,101 ["scale"] = scale,102 ["quality"] = quality,103 };104 if (mask != null)105 {106 args["mask"] = mask.Select(locator => new Dictionary<string, object>107 {108 ["frame"] = ((Locator)locator)._frame._channel,109 ["selector"] = ((Locator)locator)._selector,110 }).ToArray();111 }112 return (await Connection.SendMessageToServerAsync(Guid, "screenshot", args).ConfigureAwait(false))?.GetProperty("binary").GetBytesFromBase64();113 }114 internal Task<JsonElement?> EvalOnSelectorAsync(string selector, string script, object arg)115 => Connection.SendMessageToServerAsync<JsonElement?>(116 Guid,117 "evalOnSelector",118 new Dictionary<string, object>119 {120 ["selector"] = selector,121 ["expression"] = script,122 ["arg"] = arg,123 });124 internal Task<JsonElement?> EvalOnSelectorAllAsync(string selector, string script, object arg)125 => Connection.SendMessageToServerAsync<JsonElement?>(126 Guid,127 "evalOnSelectorAll",128 new Dictionary<string, object>129 {130 ["selector"] = selector,131 ["expression"] = script,132 ["arg"] = arg,133 });134 internal Task<FrameChannel> ContentFrameAsync() => Connection.SendMessageToServerAsync<FrameChannel>(Guid, "contentFrame", null);135 internal Task<FrameChannel> OwnerFrameAsync() => Connection.SendMessageToServerAsync<FrameChannel>(Guid, "ownerFrame", null);136 internal Task HoverAsync(137 IEnumerable<KeyboardModifier> modifiers,138 Position position,139 float? timeout,140 bool? force,141 bool? trial)142 {143 var args = new Dictionary<string, object>144 {145 ["force"] = force,146 ["position"] = position,147 ["timeout"] = timeout,148 ["trial"] = trial,149 ["modifiers"] = modifiers?.Select(m => m.ToValueString()),150 };151 return Connection.SendMessageToServerAsync<JsonElement?>(Guid, "hover", args);152 }153 internal Task FocusAsync() => Connection.SendMessageToServerAsync(Guid, "focus", null);154 internal Task ClickAsync(155 float? delay,156 MouseButton? button,157 int? clickCount,158 IEnumerable<KeyboardModifier> modifiers,159 Position position,160 float? timeout,161 bool? force,162 bool? noWaitAfter,163 bool? trial)164 {165 var args = new Dictionary<string, object>166 {167 ["delay"] = delay,168 ["button"] = button,169 ["clickCount"] = clickCount,170 ["force"] = force,171 ["noWaitAfter"] = noWaitAfter,172 ["timeout"] = timeout,173 ["trial"] = trial,174 ["position"] = position,175 ["modifiers"] = modifiers?.Select(m => m.ToValueString()),176 };177 return Connection.SendMessageToServerAsync(Guid, "click", args);178 }179 internal Task DblClickAsync(180 float? delay,181 MouseButton? button,182 IEnumerable<KeyboardModifier> modifiers,183 Position position,184 float? timeout,185 bool? force,186 bool? noWaitAfter,187 bool? trial)188 {189 var args = new Dictionary<string, object>190 {191 ["delay"] = delay,192 ["button"] = button,193 ["force"] = force,194 ["noWaitAfter"] = noWaitAfter,195 ["timeout"] = timeout,196 ["trial"] = trial,197 ["position"] = position,198 ["modifiers"] = modifiers?.Select(m => m.ToValueString()),199 };200 return Connection.SendMessageToServerAsync(Guid, "dblclick", args);201 }202 internal async Task<ElementHandleBoundingBoxResult> BoundingBoxAsync()203 {204 var result = (await Connection.SendMessageToServerAsync(Guid, "boundingBox", null).ConfigureAwait(false)).Value;205 if (result.TryGetProperty("value", out var value))206 {207 return value.ToObject<ElementHandleBoundingBoxResult>();208 }209 return null;210 }211 internal Task ScrollIntoViewIfNeededAsync(float? timeout)212 {213 var args = new Dictionary<string, object>214 {215 ["timeout"] = timeout,216 };217 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "scrollIntoViewIfNeeded", args);218 }219 internal Task FillAsync(string value, bool? noWaitAfter, bool? force, float? timeout)220 {221 var args = new Dictionary<string, object>222 {223 ["value"] = value,224 ["timeout"] = timeout,225 ["force"] = force,226 ["noWaitAfter"] = noWaitAfter,227 };228 return Connection.SendMessageToServerAsync(Guid, "fill", args);229 }230 internal Task DispatchEventAsync(string type, object eventInit)231 {232 var args = new Dictionary<string, object>233 {234 ["type"] = type,235 ["eventInit"] = eventInit,236 };237 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "dispatchEvent", args);238 }239 internal Task SetInputFilesAsync(IEnumerable<InputFilesList> files, bool? noWaitAfter, float? timeout)240 {241 var args = new Dictionary<string, object>242 {243 ["files"] = files,244 ["timeout"] = timeout,245 ["noWaitAfter"] = noWaitAfter,246 };247 return Connection.SendMessageToServerAsync(Guid, "setInputFiles", args);248 }249 internal Task SetInputFilePathsAsync(IEnumerable<string> localPaths, IEnumerable<WritableStream> streams, bool? noWaitAfter, float? timeout)250 {251 var args = new Dictionary<string, object>252 {253 ["localPaths"] = localPaths,254 ["streams"] = streams,255 ["timeout"] = timeout,256 ["noWaitAfter"] = noWaitAfter,257 };258 return Connection.SendMessageToServerAsync(Guid, "setInputFilePaths", args);259 }260 internal async Task<string> GetAttributeAsync(string name)261 {262 var args = new Dictionary<string, object>263 {264 ["name"] = name,265 };266 return (await Connection.SendMessageToServerAsync(Guid, "getAttribute", args).ConfigureAwait(false))?.GetProperty("value").ToString();267 }268 internal async Task<string> InnerHTMLAsync()269 => (await Connection.SendMessageToServerAsync(Guid, "innerHTML").ConfigureAwait(false))?.GetProperty("value").ToString();270 internal async Task<string> InnerTextAsync()271 => (await Connection.SendMessageToServerAsync(Guid, "innerText").ConfigureAwait(false))?.GetProperty("value").ToString();272 internal async Task<string> TextContentAsync()273 => (await Connection.SendMessageToServerAsync(Guid, "textContent").ConfigureAwait(false))?.GetProperty("value").ToString();274 internal Task SelectTextAsync(bool? force = null, float? timeout = null)275 {276 var args = new Dictionary<string, object>277 {278 ["force"] = force,279 ["timeout"] = timeout,280 };281 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "selectText", args);282 }283 internal async Task<IReadOnlyList<string>> SelectOptionAsync(object values, bool? noWaitAfter = null, bool? force = null, float? timeout = null)284 {285 var args = new Dictionary<string, object>();286 if (values is IElementHandle[])287 {288 args["elements"] = values;289 }290 else291 {292 args["options"] = values;293 }294 args["force"] = force;295 args["timeout"] = timeout;296 args["noWaitAfter"] = noWaitAfter;297 return (await Connection.SendMessageToServerAsync(Guid, "selectOption", args).ConfigureAwait(false))?.GetProperty("values").ToObject<List<string>>().AsReadOnly();298 }299 internal async Task<bool> IsVisibleAsync()300 => (await Connection.SendMessageToServerAsync(Guid, "isVisible", null).ConfigureAwait(false))?.GetProperty("value").GetBoolean() ?? default;301 internal async Task<bool> IsHiddenAsync()302 => (await Connection.SendMessageToServerAsync(Guid, "isHidden", null).ConfigureAwait(false))?.GetProperty("value").GetBoolean() ?? default;303 internal async Task<bool> IsEnabledAsync()304 => (await Connection.SendMessageToServerAsync(Guid, "isEnabled", null).ConfigureAwait(false))?.GetProperty("value").GetBoolean() ?? default;305 internal async Task<bool> IsEditableAsync()306 => (await Connection.SendMessageToServerAsync(Guid, "isEditable", null).ConfigureAwait(false))?.GetProperty("value").GetBoolean() ?? default;307 internal async Task<bool> IsDisabledAsync()308 => (await Connection.SendMessageToServerAsync(Guid, "isDisabled", null).ConfigureAwait(false))?.GetProperty("value").GetBoolean() ?? default;309 internal async Task<string> InputValueAsync(float? timeout)310 {311 var args = new Dictionary<string, object>()312 {313 { "timeout", timeout },314 };315 return (await Connection.SendMessageToServerAsync(Guid, "inputValue", args).ConfigureAwait(false))?.GetProperty("value").GetString();316 }317 internal async Task<bool> IsCheckedAsync()318 => (await Connection.SendMessageToServerAsync(Guid, "isChecked", null).ConfigureAwait(false))?.GetProperty("value").GetBoolean() ?? default;319 internal Task CheckAsync(Position position, float? timeout, bool? force, bool? noWaitAfter, bool? trial)320 {321 var args = new Dictionary<string, object>322 {323 ["force"] = force,324 ["position"] = position,325 ["trial"] = trial,326 ["timeout"] = timeout,327 ["noWaitAfter"] = noWaitAfter,328 };329 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "check", args);330 }331 internal Task UncheckAsync(Position position, float? timeout, bool? force, bool? noWaitAfter, bool? trial)332 {333 var args = new Dictionary<string, object>334 {335 ["force"] = force,336 ["position"] = position,337 ["trial"] = trial,338 ["timeout"] = timeout,339 ["noWaitAfter"] = noWaitAfter,340 };341 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "uncheck", args);342 }343 internal Task TypeAsync(string text, float? delay, float? timeout, bool? noWaitAfter)344 {345 var args = new Dictionary<string, object>346 {347 ["text"] = text,348 ["delay"] = delay,349 ["timeout"] = timeout,350 ["noWaitAfter"] = noWaitAfter,351 };352 return Connection.SendMessageToServerAsync(Guid, "type", args);353 }354 internal Task PressAsync(string key, float? delay, float? timeout, bool? noWaitAfter)355 {...

Full Screen

Full Screen

ElementHandle.cs

Source:ElementHandle.cs Github

copy

Full Screen

...34namespace Microsoft.Playwright.Core35{36 internal partial class ElementHandle : JSHandle, IElementHandle, IChannelOwner<ElementHandle>37 {38 private readonly ElementHandleChannel _channel;39 internal ElementHandle(IChannelOwner parent, string guid, ElementHandleInitializer initializer) : base(parent, guid, initializer)40 {41 _channel = new(guid, parent.Connection, this);42 _channel.PreviewUpdated += (_, e) => Preview = e.Preview;43 }44 ChannelBase IChannelOwner.Channel => _channel;45 IChannel<ElementHandle> IChannelOwner<ElementHandle>.Channel => _channel;46 internal IChannel<ElementHandle> ElementChannel => _channel;47 public async Task<IElementHandle> WaitForSelectorAsync(string selector, ElementHandleWaitForSelectorOptions options = default)48 => (await _channel.WaitForSelectorAsync(49 selector: selector,50 state: options?.State,51 timeout: options?.Timeout,52 strict: options?.Strict).ConfigureAwait(false))?.Object;53 public Task WaitForElementStateAsync(ElementState state, ElementHandleWaitForElementStateOptions options = default)54 => _channel.WaitForElementStateAsync(state, timeout: options?.Timeout);55 public Task PressAsync(string key, ElementHandlePressOptions options = default)56 => _channel.PressAsync(57 key,58 delay: options?.Delay,59 timeout: options?.Timeout,60 noWaitAfter: options?.NoWaitAfter);61 public Task TypeAsync(string text, ElementHandleTypeOptions options = default)62 => _channel.TypeAsync(text, delay: options?.Delay, timeout: options?.Timeout, noWaitAfter: options?.NoWaitAfter);63 public async Task<byte[]> ScreenshotAsync(ElementHandleScreenshotOptions options = default)64 {65 options ??= new();66 if (options.Type == null && !string.IsNullOrEmpty(options.Path))67 {68 options.Type = DetermineScreenshotType(options.Path);69 }70 byte[] result = await _channel.ScreenshotAsync(71 options.Path,72 options.OmitBackground,73 options.Type,74 options.Quality,75 options.Mask,76 options.Animations,77 options.Caret,78 options.Scale,79 options.Timeout).ConfigureAwait(false);80 if (!string.IsNullOrEmpty(options.Path))81 {82 Directory.CreateDirectory(new FileInfo(options.Path).Directory.FullName);83 File.WriteAllBytes(options.Path, result);84 }85 return result;86 }87 public Task FillAsync(string value, ElementHandleFillOptions options = default)88 => _channel.FillAsync(89 value,90 noWaitAfter: options?.NoWaitAfter,91 force: options?.Force,92 timeout: options?.Timeout);93 public async Task<IFrame> ContentFrameAsync() => (await _channel.ContentFrameAsync().ConfigureAwait(false))?.Object;94 public Task HoverAsync(ElementHandleHoverOptions options = default)95 => _channel.HoverAsync(96 modifiers: options?.Modifiers,97 position: options?.Position,98 timeout: options?.Timeout,99 force: options?.Force,100 trial: options?.Trial);101 public Task ScrollIntoViewIfNeededAsync(ElementHandleScrollIntoViewIfNeededOptions options = default)102 => _channel.ScrollIntoViewIfNeededAsync(options?.Timeout);103 public async Task<IFrame> OwnerFrameAsync() => (await _channel.OwnerFrameAsync().ConfigureAwait(false)).Object;104 public Task<ElementHandleBoundingBoxResult> BoundingBoxAsync() => _channel.BoundingBoxAsync();105 public Task ClickAsync(ElementHandleClickOptions options = default)106 => _channel.ClickAsync(107 delay: options?.Delay,108 button: options?.Button,109 clickCount: options?.ClickCount,110 modifiers: options?.Modifiers,111 position: options?.Position,112 timeout: options?.Timeout,113 force: options?.Force,114 noWaitAfter: options?.NoWaitAfter,115 trial: options?.Trial);116 public Task DblClickAsync(ElementHandleDblClickOptions options = default)117 => _channel.DblClickAsync(118 delay: options?.Delay,119 button: options?.Button,120 modifiers: options?.Modifiers,121 position: options?.Position,122 timeout: options?.Timeout,123 force: options?.Force,124 noWaitAfter: options?.NoWaitAfter,125 trial: options?.Trial);126 public Task SetInputFilesAsync(string files, ElementHandleSetInputFilesOptions options = default)127 => SetInputFilesAsync(new[] { files }, options);128 public async Task SetInputFilesAsync(IEnumerable<string> files, ElementHandleSetInputFilesOptions options = default)129 {130 var frame = await OwnerFrameAsync().ConfigureAwait(false);131 if (frame == null)132 {133 throw new PlaywrightException("Cannot set input files to detached element.");134 }135 var converted = await SetInputFilesHelpers.ConvertInputFilesAsync(files, (BrowserContext)frame.Page.Context).ConfigureAwait(false);136 if (converted.Files != null)137 {138 await _channel.SetInputFilesAsync(converted.Files, options?.NoWaitAfter, options?.Timeout).ConfigureAwait(false);139 }140 else141 {142 await _channel.SetInputFilePathsAsync(converted?.LocalPaths, converted?.Streams, options?.NoWaitAfter, options?.Timeout).ConfigureAwait(false);143 }144 }145 public Task SetInputFilesAsync(FilePayload files, ElementHandleSetInputFilesOptions options = default)146 => SetInputFilesAsync(new[] { files }, options);147 public async Task SetInputFilesAsync(IEnumerable<FilePayload> files, ElementHandleSetInputFilesOptions options = default)148 {149 var converted = SetInputFilesHelpers.ConvertInputFiles(files);150 await _channel.SetInputFilesAsync(converted.Files, options?.NoWaitAfter, options?.Timeout).ConfigureAwait(false);151 }152 public async Task<IElementHandle> QuerySelectorAsync(string selector)153 => (await _channel.QuerySelectorAsync(selector).ConfigureAwait(false))?.Object;154 public async Task<IReadOnlyList<IElementHandle>> QuerySelectorAllAsync(string selector)155 => (await _channel.QuerySelectorAllAsync(selector).ConfigureAwait(false)).Select(e => ((ElementHandleChannel)e).Object).ToList().AsReadOnly();156 public async Task<JsonElement?> EvalOnSelectorAsync(string selector, string expression, object arg = null)157 => ScriptsHelper.ParseEvaluateResult<JsonElement?>(await _channel.EvalOnSelectorAsync(158 selector: selector,159 script: expression,160 arg: ScriptsHelper.SerializedArgument(arg)).ConfigureAwait(false));161 public async Task<T> EvalOnSelectorAsync<T>(string selector, string expression, object arg = null)162 => ScriptsHelper.ParseEvaluateResult<T>(await _channel.EvalOnSelectorAsync(163 selector: selector,164 script: expression,165 arg: ScriptsHelper.SerializedArgument(arg)).ConfigureAwait(false));166 public async Task<T> EvalOnSelectorAllAsync<T>(string selector, string expression, object arg = null)167 => ScriptsHelper.ParseEvaluateResult<T>(await _channel.EvalOnSelectorAllAsync(168 selector: selector,169 script: expression,...

Full Screen

Full Screen

FileChooserChannelEventArgs.cs

Source:FileChooserChannelEventArgs.cs Github

copy

Full Screen

...25namespace Microsoft.Playwright.Transport.Channels26{27 internal class FileChooserChannelEventArgs : EventArgs28 {29 public ElementHandleChannel Element { get; set; }30 public bool IsMultiple { get; set; }31 }32}...

Full Screen

Full Screen

ElementHandleChannel

Using AI Code Generation

copy

Full Screen

1using Microsoft.Playwright;2using Microsoft.Playwright.Transport.Channels;3using System;4using System.Threading.Tasks;5{6 static async Task Main(string[] args)7 {8 using var playwright = await Playwright.CreateAsync();9 var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions10 {11 });12 var page = await browser.NewPageAsync();13 var elementHandle = await page.QuerySelectorAsync("body");14 var elementHandleChannel = elementHandle.ElementHandleChannel;15 Console.WriteLine(elementHandleChannel);16 await browser.CloseAsync();17 }18}

Full Screen

Full Screen

ElementHandleChannel

Using AI Code Generation

copy

Full Screen

1using Microsoft.Playwright;2using Microsoft.Playwright.Transport.Channels;3using System;4using System.Collections.Generic;5using System.Linq;6using System.Text;7using System.Threading.Tasks;8{9 {10 static async Task Main(string[] args)11 {12 using var playwright = await Playwright.CreateAsync();13 await using var browser = await playwright.Chromium.LaunchAsync(headless: false);14 var page = await browser.NewPageAsync();15 await page.GoToAsync(url);16 var element = await page.QuerySelectorAsync("div");17 var elementHandleChannel = new ElementHandleChannel(element);18 Console.WriteLine(elementHandleChannel);19 }20 }21}

Full Screen

Full Screen

ElementHandleChannel

Using AI Code Generation

copy

Full Screen

1using Microsoft.Playwright;2using Microsoft.Playwright.Transport.Channels;3using System;4using System.Threading.Tasks;5{6 {7 static async Task Main(string[] args)8 {9 using var playwright = await Playwright.CreateAsync();10 await using var browser = await playwright.Chromium.LaunchAsync();11 var page = await browser.NewPageAsync();12 var element = await page.QuerySelectorAsync("input[name=q]");13 var boundingBox = await element.GetBoundingBoxAsync();14 Console.WriteLine(boundingBox.X);15 Console.WriteLine(boundingBox.Y);16 Console.WriteLine(boundingBox.Width);17 Console.WriteLine(boundingBox.Height);18 }19 }20}

Full Screen

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright-dotnet automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used method in ElementHandleChannel

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful