cboulanger / eventrecorder Goto Github PK
View Code? Open in Web Editor NEWA qooxdoo package that allows to record user interaction for replay in testing or presentations
Home Page: https://cboulanger.github.io/eventrecorder/eventrecorder/
A qooxdoo package that allows to record user interaction for replay in testing or presentations
Home Page: https://cboulanger.github.io/eventrecorder/eventrecorder/
Eventrecorder does not record the "contextmenu" event, which is triggered by right clicking on a qooxdoo widget.
So, when the test is played back, the right clicking does not happen, the context menu is never opened, and the test fails on the next step.
Compiling package 'UI Event Recorder' with the following environment:
results in the following warnings/errors:
Cannot find path source/resource required by library qxl.versionlabel
Cannot find path source/resource required by library qookery.ace
Cannot find path source/resource required by library qookery
cboulanger.eventrecorder.ObjectIdTooltip: [54,31] Unresolved use of symbol HTMLElement
qxl.apiviewer.Controller: [56,41] Unresolved use of symbol qx.$$appRoot
Please visit https://www.qooxdoo.org/qxl.packagebrowser/#cboulanger~eventrecorder~problems for more information how to fix the problems.
To demonstrate this issue, start with the widget browser demo application, and add the following lines to widgetbrowser/pages/Tree.js In the constructor starting at line 47.
let menu = new qx.ui.menu.Menu();
this.setContextMenu(menu);
let button = new qx.ui.menu.Button(this.tr("contextmenu button"));
menu.add(button);
The issue technically still exists without adding these lines, but it isn't as clear to see.
Under the tree tab of the widgetbrowser, when the tree area under the nodes is right-clicked, the contextmenu event should be recorded, but it isn't. Other events are also not being recorded. The context menu appears on right-click if it exists, and then its menu button can be used. When repaying the test, the context menu is not opened.
Related, the tooltipid of the tree is not present.
Strangely, if you hover your mouse on the very right side of the tree area (only a few pixels of leeway here), you will see the tooltipid and the events will be recorded. This may not be possible in other apps, where the tree is inside of a splitpane, for example.
When the app first loads, the edit script button can be clicked to open the script editor. However, once the script editor is closed using the x button, the edit script button no longer opens the script editor.
Each time the edit script button is pressed, the console logs a warning:
eventrecorder.editor.placement is not a valid key. Please see the API-doc of qx.core.Environment for a list of predefined keys.
(Including the first time, when the editor actually opens)
This can be fixed by clicking on the dropdown arrow next to the edit script button, and selecting "open editor in this window." Once that option has been selected, the edit script button will work again for the rest of the session, even after the editor has been closed.
Possibly related - The first time the editor is opened the console logs these messages:
qookery.internal.components.FormComponent[1139-0]: Created
Waiting for ACE editor to become available...
008683 qookery.internal.util.Library: Loaded ace
Then, once a second for the rest of the session the console logs this message, even after the editor is closed:
Deferring setup of autocomplete...
Upon playing a test that fails, the message is often uninformative. On screen a pop up will say:
Cannot read property 'fireEvent' of undefined
A warning is logged in the console with slightly more information:
008882 cboulanger.eventrecorder.player.Qooxdoo[1041-0]: TypeError: Cannot read property 'fireEvent' of undefined
eval at <anonymous>
It would be helpful if the test failure message would say which line of the test script caused the failure.
While recording, you are limited to only using buttons that are visible and enabled.
During playback, the button is not clicked, instead the execute event is directly fired. This means that disabled, hidden, and excluded buttons can be used as if they were visible and enabled during playback.
A playback should fail if the next step is to click on a button that is disabled or not visible.
To demonstrate this issue, start with the widgetbrowser and go to the form tab. Record yourself clicking on the menubutton and then on a button inside the menu that pops up. Stop the recording. Click on the disabled button. Now, play back the recording. The events are successfully fired, so it doesn't fail, even though one button was disabled and the other not visible.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.