Launching selemium scripts from browser for screen capture - selenium

I am looking for creating a functional training package for a web based product (more like a screen capture).
However, the requirement is not just to have screen capture, but to have a test mode for the training where we can prompt the user to click on the screen and check if they have done proper flow.
for e.g. A banker will first go through the screen capture to see "how to open an account" in the core banking application . Later user will be presented with a test where user has to click through all the controls and flow.
I have seen selenium being used for authoring good UI automation test cases, so I wanted to explore the possibility of using selenium for creating these training modules
These training modules needs to be launched from intranet application. Is it possible to launch selenium authored UI automation test cases from the browser? I want to stay away from writing any extensions or plugins.
I haven't used selenium and I might be completely off tangent here, so any other suggestion to achieve this using open source tools are welcome.

Without writing any scripts, you may consider downloading Selenium IDE. It has a recording and replay function that may meet your need.
For a fast tutorial, please follow this link.
https://www.youtube.com/watch?v=gsHyDIyA3dg
Hope it helps.

Related

Automating Functional Test

I am a person who works as a SW QA in Korea. I have used Jira Old Version(Local System) to Track issue out and github to manage Site Source. Now i am considering to change Test System. until now, i have had to test all function that was updated in my solution manually!!. so i start wondering how i can automate this. What i want is to test main system and sub system(function) with using program like Postman. So i hope you recommend some programs to test what i want all.
Test Priority is Automation of that below
easy use
Main Source Test
Sub(Function) Source Test
please, i will wait for your answer
I have used Jira Old Version(Local System) to Track issue out and github to manage Site Source. i want to automate all test including black box, UI function.

Options for recording the tasks done in a browser for UI Automation Test

Is there a tool that can record user interactions with DOM elements for usage in creating automated tests (I'm using Codeception and Laravel Dusk but any tool with roots in Selenium is fine). I'm looking for something to record a sequence and get back a list that might include:
Browser navigate to /contact
Focus input "#name"
Enter text "Joe" in input #name
Focus textarea textarea[name=message]
Enter text "Hello world" in textarea textarea[name=message]
Click element input[type=submit]
Browser navigate to /contact?thanks
I see GhostInspector but that is tied directly into a cloud based company and I don't want that, I'd like some degree of control over what the plugin does and be able to record pages not on the public web.
I can see building a tool that recorded every action is non-trivial - mousemove events, focus, text selection, keyboard events, scroll events, etc. Ideally I can say "listen to every focus, click, and keyup event on an input or textarea or button or select or option" and also watch for url changes.
Does such a tool exist? Doesn't matter what browser stack it runs on really, just need the ability for a user, maybe a novice user, to go to a website, hit record, do some actions, and get back a list of what occurred.
The instantaneous downvotes that contend my question is "not about programming" prompt me to improve my question. I don't presume the nature of the tool - it might be programming methods? Ways to use the browser to listen for all events and log them in some manner? Might be a Chrome extension? Might be a framework? Might be a library? I'm looking for the experience of programmers to help me with the programming task I'm trying to accomplish.
Have you tried using the Chrome extension Laravel TestTools?
https://chrome.google.com/webstore/detail/laravel-testtools/ddieaepnbjhgcbddafciempnibnfnakl
Katalon Recorder (Selenium IDE for FF55+)
https://addons.mozilla.org/en-US/firefox/addon/katalon-automation-record/
The straight answer to your question is: Yes there are a number of tools available that are on top of Selenium. I will briefly discuss the top ones that also support browser extensions
1. New Selenium ID(Open Source)- Selenium is possibly the most popular open-source test automation framework for Web applications. The new Selenium IDE is designed to record your interactions with websites to help you generate and maintain site automation, tests, and remove the need to manually step through repetitive takes.
Features:
Recording and playing back tests on Firefox and Chrome.
Organizing tests into suites for easy management.
Saving and loading scripts, for later playback.
Selenium has become a core framework for other open-source test automation tools such as Katalon Studio, Watir, Protractor, and Robot Framework.
FireFox Extension
Chrome Extension
2. Kantu(Open-source)- It is a record & replay tool for automated testing, web automation, automating file uploads and autofill form filling. The visual UI testing commands of Kantu help web designers and developers to verify and validate the layout of websites (and canvas elements).
Features:
Kantu provides with built-in flow control commands like if/else/endif, while/endWhile or GotoIf
FireFox Extension
Chrome Extension
3. Katalon Automation Recorder- Katalon have Katalon Studio which is a completely free desktop application. Recently they launched new Selenium IDE that helps you record actions, capture web elements on web applications, play automated test cases, and do reporting quickly and easily.This Extension was the champion project of Katalon Studio Hackathons contest.
Features:
Record, play, debug with speed control, pause/resume, breakpoints capabilities.
Enjoy fastest execution speed compared to other extensions with Selenium 3 core engine.
Import test data from CSV files for data-driven testing.
Report easily with logs, screenshots capturing, with historical data and analytics from Katalon Analytics.
FireFox Extension
Chrome Extension
Few references for further comparison:
https://medium.com/#briananderson2209/best-automation-testing-tools-for-2018-top-10-reviews-8a4a19f664d2 (comments section will also helpful)
https://a9t9.com/blog/selenium-ide-2018/
https://www.g2crowd.com/categories/test-automation
https://www.qasymphony.com/blog/100-plus-best-software-testing-tools/

How to set manually opened browser as Selenium webDriver

I am working on automating a web application.
I have many pages like login page etc. and I have many tabs. Each tab will open different page, for example, if I want to open page3, I have to go through page1 first then page2.
Here my problem is If I want to test some functionality on page3, then I have to go through all pages. It is taking so much time to test single functionality I need to spend so much time.
Is there any way I can set already opened browser as Selenium WebDriver?
Unfortunately, no.
This is the most starred feature request on Selenium as of now (February 2013, current Selenium 2.30.0). It's also one of the oldest.
http://code.google.com/p/selenium/issues/detail?id=18
There has been some work on Firefox for this, but it's undocumented, very experimental and no changes have been seen on it for quite a while. For more information, look at the linked feature request.
Front-end automation is hard, Selenium can only do what a normal user could do. The best you can do is to run the tests in parallel on many remote machines.
No... It is not possible....
In order to reduce the manual execution, we are moving towards automation.
Inbetween you cannot automate.

Testing progressively enhanced features with Capybara

I'm using Capybara to test features on a progressively enhanced website. Let's say my feature is to navigate around a hierarchy of locations. The non-javascript version involves getting a new version of the page when we click around on different locations. The enhanced javascript version opens up hidden elements, or loads up new information via Ajax.
I start by writing a test for the non javascript version, which looks something like this:
When I visit the page for "UK"
And I click "London"
Then I should see the information for "London"
Using the default mechanize driver, the test fails, I develop the feature, then the test passes.
I then create an identical test for the javascript version, flagged up with #javascript. It runs the test with the javascript driver, and that test passes because the feature has been implemented. (It's running through the non-js flow). However, I want the javascript version of the test to fail at this point because the feature has not yet been enhanced with Javascript.
So I'm looking for a good strategy for determining whether or not a whole new page has come from the server, and making sure both versions of the feature work. (I plan on integrating this with pushState so testing for a changed URL won't do)
I'm interested to hear other peoples opinions on this - I'm not convinced Cucumber is the right tool for the job, since you're describing features from the perspective of user interaction, and it sounds like your implementation of progressive enhancement will result in essentially the same user interaction.
That aside, I think you may want to consider building in some kind of testing hook to the page itself to help with this. Hard to say what without knowing your exact situation, but maybe one of:
The script-enhanced version of the page could add some element to the DOM, indicating that the enhancements are active, or indicating that the data came from an AJAX request rather than page load.
You could generate a random page identifier (from the server) on every load (e.g. new GUID), embed this into the DOM and assert that it hasn't changed after the interaction (on the enhanced version). This would be a very simple way of achieving your stated goal ("determining whether or not a whole new page has come from the server")
Why does your javascript "enhanced" version work the same as your non-enhanced? Your cucumber tests using #javascript should be testing to ensure the enhancements work.
For instance,
* if the javascript opens a modal dialog instead of following a link to a new page, test for that.
* if the javascript submits a form and updates a value, test for that.
These tests would fail if run without javascript support.

Test Manager for Trac questions

I'm looking for a way to better manage a list of test cases within Trac. The Test Manager plugin for Trac seems to be the obvious choice.
Anyone have experience, comments and/or concerns with the Test Manager plugin for Trac?
We've also looked at Testuff, which has an awesome "Test Runner" app that integrates with Trac for creating tickets. However, it stores all of the test cases, labs, etc on their servers. I'd really like to have a single destination for documentation, tickets and tests (i.e. Trac).
We're using SnagIt for screen capture and annotations today. We're looking at the Problem Steps Recorder in Windows. We'd like to find something that can send captures to Trac, similar to the Testuff-Trac integration.
Any suggestions for an app that can capture video/images with each mouse click and key press logged? BONUS: Attach capture(s) into a new Trac ticket.
For capturing movies and uploading into Trac, try http://www.bbtestassistant.com/
For single screen captures, annotation and uploading into Trac, try http://fat-bug.com
I have also written a plugin for Cropper, http://cropper.codeplex.com/, that will let you upload images but it does not support annotations before hand like fat bug. Let me know if you want a copy of that.
We used Test Manager Plugin For Trac in one of my previous projects and I can say that it worked fine for us. It provides bidirectional traceability between Test Cases and user stories, support test plans (which in my point of view are execution plans but incorporated with wiki page become test plan) and it also as most of the Trac plugins allow to be customized in order to satisfy the process needs.