question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Best practices, general improvements and announcement

See original GitHub issue

I wrote a list of the new headless chrome tools. Also updated this list to the awesome test automation list and recommended that list in TagUI readme for developers looking for test automation tools. I believe there is value looking through the various tools, their features, and the issues users raised. Probably will be able to pick up and implement some best practices which are relevant to TagUI’s goal.

Now is also a good time to make general improvements to TagUI, checking various areas and functionality for improvements (such as frame, popup, loops, blocks, live-mode, consistency across browsers etc). Jotting down some thoughts below, some points will end up in readme next time.


TagUI is basically a hack that is meant for lazy people who wants to get things done asap without much effort (like me). It takes in super-basic natural-language-like scripts and spits out working nested CasperJS JavaScript code to drive automation. And along with that, broad range of features in TagUI framework which are from my experience important and super-useful to prototype / deploy / maintain web automation.

It probably won’t attract contributors partly because it is so specific and already developed in its goal that it will only be relevant for a small number of users (but for those who do, will find it amazingly useful), also partly the coding style is basically to maximize screen real estate when developing using vim while on a nomadic lifestyle. Also, where possible I try not to modularize. Keeping everything in one place is easiest to maintain without having to grab info from multiple sources when it is time to debug.

I also try to reduce dependency as much as possible so that it can be easily deployable by non-developers (unzip and run without the need to install any other tools/environment). Same for Chrome integration, it is done from the ground up directly to talk to Chrome using Chrome Debugging Protocol through a websocket connection, without dependency on other Chrome frameworks/tools. In order to make all these happen, you’ll see it implemented in JavaScript, PHP, bash-shell, Windows batch scripting, and Python (for Sikuli visual automation).

The part that I enjoy when making TagUI an open-source project, is it helps me distribute to a larger group of people, who can bounce ideas on how it can be better, or point out something which is in my blindspot. Since 3-4 weeks ago, I have been trying to divert traffic away from this Github page (all the recommendations to other Python tools for datascraping, test automation list for testing etc). I think TagUI has a meaningful user-base now that I’m comfortable supporting. I hope that won’t change soon, I would rather spend more quality time working with early users than spreading time thinly to address issues from large number of users.

As some of you already know, almost a month back I said I’m moving away from working full-time on TagUI project. I still have a few ideas to get them implement (and can’t wait for that to happen because I want to use those features myself), but it’ll be done part-time instead of full-time since I made the first commit in Dec’16. What I found was the initial skeleton took just a few days to write (parsing natural-language to CasperJS JavaScript code). But as features are added on, and each feature gets improved, it takes increasingly larger amounts of time to make marginal improvements.

About a month ago, with TagUI v2.0 release having built-in visible / headless Chrome integration, I think the bulk of the work is done. I would now really want to make a CLI helper which can help to run scripts. The TagUI scripts are already in natural-language-like syntax to convert to JS code. I want to have a helper that can convert to calling the right scripts with right parameters. Instead of typing tagui bank_balance on command prompt, I think it is more intuitive to support typing erina get my bank balance or something like that directly on command prompt. And then the magic happens behind the scenes to return the results. Having this is also a pre-cursor to voice-control possibility later on. Another part I really want to integrate into TagUI is some form of machine learning. Maybe the Yandex’s CatBoost project? (low overhead and can be run well on single laptop). Otherwise decision-making is restricted to if statements and so on. Not very sophisticated cognitive ability. Some form of matrix or fuzzy logic ability is simply needed to make TagUI be able to do more in automation.

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:14 (10 by maintainers)

github_iconTop GitHub Comments

1reaction
TMM21042commented, Aug 10, 2017

Ken; Thanks for your great work on TagUI. The readme file is very good for TagUI. And the examples are also helpful to see the actual use of the natural language scripts. I use CasperJS heavily and am familiar with automation testing using CasperJS. I have been trying TagUI’s Chrome extension for recording automation flow steps with some successes and some failures. What I notice on a number of sites (Twitter, Facebook, Zillow) that the X-path and CSS selectors for an element I need to interact with are dynamic (probably set based on a session variable or something else that changes with each test session) and cannot be relied on to be repeated. So an automation flow created once with TagUI recording (Chrome extension) fails when the next automation test is started (because the element ID cannot be found). For example “click yui_3_18_1_1_1502240389295_1616” is an example of a dynamic element reference generated by TagUI recording that changes each time the automation flow is run. I get a similar result when I manually inspect the element rather than use the recording tool.

Does TagUI have the ability (or is their a technique) to interact with dynamic element references? Is it possible for CasperJS to successfully use only part of an element reference ( such as ignore the dynamic part of an element ID )? How can I get TagUI work with dynamic element references?

0reactions
jyothikiranncommented, Nov 13, 2018

On Mon, 12 Nov 2018 06:43:48 -0800, Ken Soh wrote:

Copying @Aussiroth [1] to follow-up as AI Singapore and @Aussiroth [2] is now maintaining TagUI. Thanks for your feedback. I assume you mean running in background mode. To do so, use the headless option or run without the chrome option. type tagui without any parameters to see the list of run-time options.

TagUI can only work with Chrome and PhantomJS browsers. It can also work with Firefox but pending fix on SlimerJS project that TagUI uses to interact with Firefox - laurentj/slimerjs#694 [3] (the newer versions of Firefox has breaking changes that affect SlimerJS)

– You are receiving this because you commented. Reply to this email directly, view it on GitHub [4], or mute the thread [5].

Hi Kel,

Thank you for yours reply ,i will check and try it ,i am going work on TagUI so in future if i struck anywhere i need yours help to move.

Thanks & Regards,

Kiran.

Links:

[1] https://github.com/Aussiroth [2] https://github.com/Aussiroth [3] https://github.com/laurentj/slimerjs/issues/694 [4] https://github.com/kelaberetiv/TagUI/issues/42#issuecomment-437906451 [5] https://github.com/notifications/unsubscribe-auth/AdoD9xEF6sESCfGJuPA8HBBb0a11MuCqks5uuYkkgaJpZM4OuddH

Read more comments on GitHub >

github_iconTop Results From Across the Web

Release Notes Best Practices: How to Announce Product ...
Write your release notes with the customer in mind. Focus on what the new features mean for the user and not for your...
Read more >
Best practices for communicating software releases and ...
Read about proven strategies to create effective and timely software release notes that drive feature adoption and reduce user churn.
Read more >
How to Write Release Notes Your Users Will Actually Read
5 Release Notes Best Practices · 1. Use plain language · 2. Keep them short · 3. Group them logically · 4. Include...
Read more >
How to write release notes (+5 great examples) | Appcues Blog
Effective release notes re-engage users & keep your customers up-to-date. Here are the 5 best release note examples & best practices for writing...
Read more >
Transforming Your Release Notes into Product Announcements
Keeping users informed of updates and best practices in your product will help to ensure your user's success with the product.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found