Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New keyboard step for advanced keyboard entry and modifiers #370

Closed
kensoh opened this issue Mar 29, 2019 · 3 comments
Closed

New keyboard step for advanced keyboard entry and modifiers #370

kensoh opened this issue Mar 29, 2019 · 3 comments
Labels

Comments

@kensoh
Copy link
Member

kensoh commented Mar 29, 2019

Building on the series of enhancements around Sikuli integration #368, #361 and #365 for greater control of mouse, creating and sending a PR that adds a new keyboard step. This step lets user send low-level keyboard keystrokes to the operating system user interface, including the special keys and modifier keys. Normal letter characters and numbers can also be entered. Some examples below.

(before this feature, users can only use 1. type page.png as text and limited to [enter] and [clear], or 2. use vision step to send custom commands to perform complex keyboard actions)

macOS Example

keyboard [cmd][space]
keyboard safari[enter]
keyboard [cmd]c
keyboard [cmd]v
keyboard testing 123

Windows Example

keyboard [ctrl][home]
keyboard [printscreen]
keyboard [ctrl]c
keyboard v[ctrl]
keyboard testing 456

List of Modifier Keys

[shift] [ctrl] [alt] [cmd] [win] [meta]

List of Special Keys

[clear] [space] [enter] [backspace] [tab] [esc] [up] [down] [left] [right] [pageup] [pagedown] [delete] [home] [end] [insert] [f1] .. [f15] [printscreen] [scrolllock] [pause] [capslock] [numlock]

@kensoh kensoh changed the title New keyboard step for advance keystroke entries and modifiers New keyboard step for advance keyboard entries and modifiers Mar 29, 2019
@kensoh kensoh added the feature label Mar 29, 2019
kensoh added a commit to tebelorg/TagUI that referenced this issue Mar 29, 2019
…modifiers

Building on the series of enhancements around Sikuli integration aisingapore#368, aisingapore#361 and aisingapore#365 for greater control of mouse, creating and sending a PR that adds a new `keyboard` step. This step lets user send low-level keyboard keystrokes to the operating system user interface, including the special keys and modifier keys. Normal letter characters and numbers can also be entered.

Prior to this, users can only use 1. `type page.png as text` and limited to [enter] and [clear], or 2. use `vision` step to send custom commands to perform complex keyboard actions. Below are some examples.

**macOS**
```
keyboard [cmd][space]
keyboard safari[enter]
keyboard [cmd]c
keyboard [cmd]v
keyboard testing 123
```

**Windows**
```
keyboard [ctrl][home]
keyboard [printscreen]
keyboard [ctrl]c
keyboard v[ctrl]
keyboard testing 456
```

List of modifier keys - [shift] [ctrl] [alt] [cmd] [win] [meta]
List of special keys - [clear] [space] [enter] [backspace] [tab] [esc] [up] [down] [left] [right] [pageup] [pagedown] [delete] [home] [end] [insert] [f1] .. [f15] [printscreen] [scrolllock] [pause] [capslock] [numlock]
kensoh added a commit to tebelorg/TagUI that referenced this issue Mar 29, 2019
kensoh added a commit that referenced this issue Mar 29, 2019
…371)

Building on the series of enhancements around Sikuli integration #368, #361 and #365 for greater control of mouse, creating and sending a PR that adds a new `keyboard` step. This step lets user send low-level keyboard keystrokes to the operating system user interface, including the special keys and modifier keys. Normal letter characters and numbers can also be entered.

Prior to this, users can only use 1. `type page.png as text` and limited to [enter] and [clear], or 2. use `vision` step to send custom commands to perform complex keyboard actions. Below are some examples.

**macOS**
```
keyboard [cmd][space]
keyboard safari[enter]
keyboard [cmd]c
keyboard [cmd]v
keyboard testing 123
```

**Windows**
```
keyboard [ctrl][home]
keyboard [printscreen]
keyboard [ctrl]c
keyboard v[ctrl]
keyboard testing 456
```

List of modifier keys - [shift] [ctrl] [alt] [cmd] [win] [meta]
List of special keys - [clear] [space] [enter] [backspace] [tab] [esc] [up] [down] [left] [right] [pageup] [pagedown] [delete] [home] [end] [insert] [f1] .. [f15] [printscreen] [scrolllock] [pause] [capslock] [numlock]
@kensoh
Copy link
Member Author

kensoh commented Mar 29, 2019

Committed to master. Prior to packaged release, feature available from cutting edge version here -

https://github.com/kelaberetiv/TagUI#set-up

@kensoh kensoh closed this as completed Mar 29, 2019
kensoh added a commit to tebelorg/TagUI that referenced this issue Mar 30, 2019
… for new steps

Creating and sending a PR for updated TagUI language definitions and translation engine for the new steps (`keyboard`, `mouse`) and helper functions (`mouse_xy()`, `mouse_x()`, `mouse_y()`) created in aisingapore#370, aisingapore#368, aisingapore#361 and aisingapore#365.

This lets users use the new steps and helper functions in 21 different languages. More details on the multiple languages feature of TagUI in below link of documentation -

https://github.com/kelaberetiv/TagUI#native-languages
kensoh added a commit that referenced this issue Mar 30, 2019
…eps (#373)

Creating and sending a PR for updated TagUI language definitions and translation engine for the new steps (`keyboard`, `mouse`) and helper functions (`mouse_xy()`, `mouse_x()`, `mouse_y()`) created in #370, #368, #361 and #365.

This lets users use the new steps and helper functions in 21 different languages. More details on the multiple languages feature of TagUI in below link of documentation -

https://github.com/kelaberetiv/TagUI#native-languages
kensoh added a commit to tebelorg/TagUI that referenced this issue Mar 30, 2019
…#361 aisingapore#368 # 370 aisingapore#372

Creating and sending a PR to address issues that can arise out of the PRs on aisingapore#365 - enabling (x,y) coordinates locator, aisingapore#361 - helper functions for retrieving x & y coordinates, and aisingapore#372 - update of translation engine to reflect the new steps (aisingapore#368 mouse and aisingapore#370 keyboard) and functions.

**change 1**

As TagUI is built on CasperJS, it has by default the use of convenience function x ([more details here](http://docs.casperjs.org/en/latest/selectors.html#index-2)), which is used to form XPath selectors to be used within CasperJS. However, with introduction of (x,y) coordinates selectors, it is not hard to see that many users will start using x as a variable and overwriting x variable with the integer value of the x coordinates (be it for calculation of offset or other purpose).

When that happens, the default x function would no longer work and that will basically break the automation operation of TagUI. In this PR, the function x is renamed as xps666 instead (X Path Selector 666), a acronym with a random number, so that when user uses variable x, it will not affect TagUI operations.

**change 2**

In tagui_header.js, the live mode translation engine use of 'mouse_xy()', 'mouse_x()' and 'mouse_y()' strings is broken up into 'mouse_' + 'xy()', 'mouse_' + 'x()' and 'mouse_' + 'y()'. This prevents tagui_parse.php from mistakenly thinking that these functions are used by users and invoking Sikuli visual automation when users do not use these functions in their TagUI scripts.
kensoh added a commit that referenced this issue Mar 30, 2019
Creating and sending a PR to address issues that can arise out of the PRs on #365 - enabling (x,y) coordinates locator, #361 - helper functions for retrieving x & y coordinates, and #372 - update of translation engine to reflect the new steps (#368 mouse and #370 keyboard) and functions.

**change 1**

As TagUI is built on CasperJS, it has by default the use of convenience function x ([more details here](http://docs.casperjs.org/en/latest/selectors.html#index-2)), which is used to form XPath selectors to be used within CasperJS. However, with introduction of (x,y) coordinates selectors, it is not hard to see that many users will start using x as a variable and overwriting x variable with the integer value of the x coordinates (be it for calculation of offset or other purpose).

When that happens, the default x function would no longer work and that will basically break the automation operation of TagUI. In this PR, the function x is renamed as xps666 instead (X Path Selector 666), a acronym with a random number, so that when user uses variable x, it will not affect TagUI operations.

**change 2**

In tagui_header.js, the live mode translation engine use of 'mouse_xy()', 'mouse_x()' and 'mouse_y()' strings is broken up into 'mouse_' + 'xy()', 'mouse_' + 'x()' and 'mouse_' + 'y()'. This prevents tagui_parse.php from mistakenly thinking that these functions are used by users and invoking Sikuli visual automation when users do not use these functions in their TagUI scripts.
@siowyisheng siowyisheng changed the title New keyboard step for advance keyboard entries and modifiers New keyboard step for advanced keyboard entry and modifiers Jan 19, 2020
@maheswarGR
Copy link

maheswarGR commented Jan 27, 2022

keyboard [enter] is not working in tagui script @kensoh
image

@kensoh
Copy link
Member Author

kensoh commented Jan 27, 2022

Thanks @maheswarGR for raising this, I've replied to #1171

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants