Example #1
0
        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));
            }
        }