public override async Task PerformTask(ISkraprWorker worker) { var keyEvents = InputUtils.ConvertInputToKeyEvents(Input); if (keyEvents.Count() == 0) { throw new InvalidOperationException($"No keyevents were found in input: {Input}"); } var nodeId = await worker.Session.DOM.GetNodeIdForSelector(Selector); await worker.Session.DOM.Focus(new Dom.FocusCommand { NodeId = nodeId }, worker.CancellationToken); foreach (var keyEvent in keyEvents) { await worker.Session.Input.DispatchKeyEvent(keyEvent, worker.CancellationToken); await Task.Delay(RandomUtils.Random.Next(5, 50)); keyEvent.Type = "keyUp"; await worker.Session.Input.DispatchKeyEvent(keyEvent, worker.CancellationToken); await Task.Delay(RandomUtils.Random.Next(50, 150)); } }