/// <summary> /// Sends a <c>keydown</c>, <c>keypress</c>/<c>input</c>, and <c>keyup</c> event for each character in the text. /// </summary> /// <param name="selector">A selector of an element to type into. If there are multiple elements satisfying the selector, the first will be used.</param> /// <param name="text">A text to type into a focused element</param> /// <param name="options"></param> /// <exception cref="SelectorException">If there's no element matching <paramref name="selector"/></exception> /// <remarks> /// To press a special key, like <c>Control</c> or <c>ArrowDown</c> use <see cref="Keyboard.PressAsync(string, PressOptions)"/> /// </remarks> /// <example> /// <code> /// await frame.TypeAsync("#mytextarea", "Hello"); // Types instantly /// await frame.TypeAsync("#mytextarea", "World", new TypeOptions { Delay = 100 }); // Types slower, like a user /// </code> /// </example> /// <returns>Task</returns> public Task TypeAsync(string selector, string text, TypeOptions options = null) => SecondaryWorld.TypeAsync(selector, text, options);