Git Product home page Git Product logo

katalon-recorder's Introduction

Katalon Recorder is a free, Selenium IDE alternative. It is a lightweight web extension you can use to automate actions and tests from your browser. Currently, we are available on Chrome, Firefox and Edge.

Installation

To install Katalon Recorder on your desired browser, visit our website: Katalon Recorder.

Documentation

For instructions on using Katalon Recorder, visit our documentation website: Full documentation.

Community and support

Configurations

Adding a new formatter

To add a new formatter, go to panel\index.html, and replace "sample" with the formatter name:

<option value="new-formatter-sample">Sample for new formatters</option>

For sample implementation, see: panel\js\katalon\newformatters\sample.js

Resources

Acknowledgments

We would like to take this opportunity to express our warmest thanks to Katalon Recorder users and other open-source projects, especially:

License

For details about licenses, refer to the following documents:

Please inform us if you found any unlicensed part of the source code.

Companion products

Katalon TestOps

Katalon TestOps is a web-based application that provides dynamic perspectives and an insightful look at your automation testing data. You can leverage your automation testing data by transforming and visualizing your data; analyzing test results; seamlessly integrating with such tools as Katalon Studio and Jira; maximizing the testing capacity with remote execution.

Katalon Studio

Katalon Studio is a free and complete automation testing solution for Web, Mobile, and API testing with modern methodologies (Data-Driven Testing, TDD/BDD, Page Object Model, etc.) as well as advanced integration (JIRA, qTest, Slack, CI, Katalon TestOps, etc.). Learn more about Katalon Studio features.

katalon-recorder's People

Contributors

aalasolutions avatar abriand-solicis avatar allcontributors[bot] avatar devalex88 avatar dt-mafe avatar haolekatalon avatar huynguyen2908 avatar linhhuynhtruc avatar mileslin avatar minhthanh3145 avatar olenitsj avatar pgroot91 avatar reyelts avatar sonpham96 avatar svrnm avatar upupdwndwnlftrt avatar uyendo0823 avatar zoldike-gh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

katalon-recorder's Issues

Break command doesn’t work

Hello community,
I want to use the break command inside the Recorder, but it doesn’t work, here the log:
image

I use it on this way.
image

Could it be possible that this command is not available?

Linux Ubuntu 18.04 LTS
Chrome 81.0.4044.129 64 bits
Katalon Recorder 5.1.0

Thanks for your support.

SetSpeed command doesn't work.

Steps:
1 - Open Katalon Recorder in Chrome and create/open a test case;
2 - On the begin of the test add a command "setSpeed" with some value (i.e 800);
3 - Start the test.
Result: The test executes at maximum speed.

Katalon RECORDER continue on failure

I have a problem where I need katalon recorder to keep going after certain steps fail, how can I do this?

Note: I know how to do it in katalon studio but i need it in katalon RECORDER

Record without GUI

Its possible to record from cli without GUI and export to py script ?

Thanks

Unable to export XML when recording on non-UTF-8 page

When I open up a page that happens to be in non-UTF-8 encoding to record a test case, all is good until I click accented link that makes the text go (link=) into XML that has UTF-8 prolog. That produces invalid XML. Katalon does not happen to transcode the file from such pages.

It's hard to find one these days so here's one for you: http://www.zshorakhk.cz/files/tinymce/tvorba/ucitele/WWW/index.php?lekce=2

To reproduce:

  • start recording
  • click on accented link (ex. "2. Formátování textu" at the bottom)
  • stop recording and click Export

Save As File... does nothing, expected: would save a correct XML.

I'm a dev, never had done any browser extension though, I might go and try fixing this myself if you direct me how/where the problem should be solved.

Thanks

Katalon recorder to katalon studio

Wich file type should i export from katalon recorder to import into katalon studio, and also how do i properly import it into the studio? i tried a normal text file copy paste but it does not work properly, it gets randomly stuck on steps and things to click yet i let THE SAME code run in Katalon recorder 50 times without failure. ?????

selectFrame does not work in katalon recorder plugin for chrome.

I am trying to create a script that has an iframe.
I am using selectFrame command and have tried using the following ways in locator:

  1. index=0
  2. //iframe[@title='name']
  3. xpath=//iframe[@title='name']

The log says 'Invalid Arguments'
I have tried recording and playing back and the script fails.
I am using Chrome browser on Mac.

Plugin - 3.7.0
Chrome - 73.0.3683.
Mac OSX - Mojava 10.14.3

Javascript issues with FF/Chrome using latest Version

Hello,
We are using the latest Katalon Recoder 3.6.14 browser plugins but when we enable them in our browser, it causes a Javascript error on both our site AND when using Proxmox's NoVNC server console viewer.

Our site browser shows the following error

SyntaxError: redeclaration of var nextPromptResult prompt.js:1:1
    <anonymous> moz-extension://4484b208-983d-4277-8fb7-e491bf9fa9a4/assets/prompt.js:1:1

and Proxmox's NoVNC server console displays this on the console main screen.

noVNC encountered an error:

Script error.
moz-extension://4484b208-983d-4277-8fb7-e491bf9fa9a4/assets/prompt.js:0:0

Any way to fix it?

Set timeout bigger than 30s

Using command like waitForElementPresent, I set the value as 180000
But timeout seems to be fixed a 30000ms

command-receiver.js:216 Error: Timed out after 30000ms
    at new SeleniumError (utils.js:800)

Is it possible to change this value?

UPDATE:
Here

Selenium.prototype.doSetTimeout = function(timeout) {

it seems to be possible, but it does not work (at least for me)

Incomplete documention regarding user input during script execution

See this page, for example: Tip: How to use an Input Dialog in a Recorder Script. Probably because this use case and mainly the runScript is undocumented, the author recommends a rather complicated usage of addScript.

What is missing in the docs then?

  1. That runScript (equivalent of executeScript from Selenium 3.1+) can also store the result of JS execution (including calls to prompt()) to a variable, just like storeEval does. It just needs to contain a return JS statement, or the variable will be undefined.

  2. That storeEval suppresses calls to prompt(). This goes against what was possible in Selenium IDE before it got removed (see SO for more details).

  3. A working example for user input via prompt() in the Katalon Recorder Samples.

Source code for PHPUnit formatter

Thanks for creating these great plugins (Katalon Recorder & PHPUnit formatter for Katalon Recorder).

I have some questions about PHPUnit formatter's source code:

  • Is the source code for PHPUnit formatter for Katalon Recorder (created by Jan Esser) available? I searched github but I couldn't find it anywhere.
  • I found this project https://github.com/vitormattos/Selenium-PHP-Formatter. Not sure how they are related, as that project quite old.
  • If it's available, are there any chances for it to be merged into this project?

Test Suite Save XML issue

When saving a test suite using the Firefox/Chrome add-ons there is a missing double quote in the doctype declaration right before the http://www.w3.org url:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

derivative works license question

I made a tool called Protractor Recorder that is based on your "Katalon Recorder". It's an open source software. Due to your recorder is not a MIT license, I'd like to confirm that is it okay to provide derivation work based on your software? If this is not allowed, I'll remove my project. Hope to get your response. Thanks!

Can not import a test file

I have a Katalon recorder test file and I tried to import that file to the new pc.
On the screen , I pushed file button and tried to import my test file as test document . There is no change on the screen or no errors.
error

IF don't work

I'm trying to made a if in katalon recorder, but it alwatys in the condition, a get the samples and change the values to became false and the testes go in the if

Uploading image.png…

KAT version seems not up to date?

Hi Guys,

The version in GitHub seems out to date with the published version in the Chrome/Firefox store?

Is the extension maintained somewhere else now?

Github: 3.9.0
Stores: 3.9.1

Can we still create PRs here on the Github project? 👍

Patrick

Errors when importing plugin using manifest.json

Environment:
Firefox v 65.0
Chrome v 71.0.35

Steps to Reproduce:

  1. Clone repository
  2. Open about:debugging in Firefox
  3. add temporary addon
  4. Select the manifest.json in your clone of the repository

Reading manifest: Error processing permissions.12: Value "debugger" must either: must either [must either [be one of ["clipboardRead", "clipboardWrite", "geolocation", "idle", "notifications"], be one of ["bookmarks"], be one of ["find"], be one of ["history"], be one of ["menus.overrideContext"], be one of ["search"], be one of ["activeTab", "tabs", "tabHide"], be one of ["browserSettings"], be one of ["cookies"], be one of ["downloads", "downloads.open"], be one of ["topSites"], be one of ["webNavigation"], or be one of ["webRequest", "webRequestBlocking"]], be one of ["alarms", "mozillaAddons", "storage", "unlimitedStorage"], be one of ["browsingData"], be one of ["devtools"], be one of ["identity"], be one of ["menus", "contextMenus"], be one of ["pkcs11"], be one of ["geckoProfiler"], be one of ["sessions"], be one of ["contextualIdentities"], be one of ["dns"], be one of ["management"], be one of ["privacy"], be one of ["proxy"], be one of ["nativeMessaging"], be one of ["telemetry"], be one of ["theme"], or match the pattern /^experiments(\.\w+)+$/], or must either [be one of ["<all_urls>"], must either [match the pattern /^(https?|wss?|file|ftp|\*):\/\/(\*|\*\.[^*/]+|[^*/]+)\/.*$/, or match the pattern /^file:\/\/\/.*$/], or match the pattern /^resource:\/\/(\*|\*\.[^*/]+|[^*/]+)\/.*$|^about:/] Reading manifest: Error processing offline_enabled: An unexpected property was found in the WebExtension manifest.

I also got problems with chrome:

  1. open chrome:extensions
  2. toggle developer mode on
  3. do "load unpacked"
  4. select the directory you cloned the repo in

Uncaught TypeError: Cannot read property 'fn' of undefined
content/jquery.simulate.js:17 (anonymous function)

Not sure what that's about.

Nevertheless, it appears things load and run despite this? Here's hoping it doesn't discourage people trying to work on this.

Editing new or existing commands often doesn't do anything

This bug is pretty evident and therefore surprising for me: Just use the Recorder for a while - add new commads, navigate away from the recorder window and back and try to edit a command... More often than expected, this results in that changes made to the 3 edit fields (Command, Target, Value) have no real effect.

Possibly related: The app also has evident problems with editing and removing the last empty command lines...

Tested in Firefox with the latest Recorder addon version.

Enhancement Request - Ability to comment in scripts in Katalon Recorder

The ability to comment out a entire row/line of a test case in Katalon Recorder would help users to safely assess commands created during recording before deleting them. While the Breakpoints and Play from here features are helpful for this, being able to comment out lines would be faster to see the impact of excluding commends when running test cases. For this feature I suggest adding "Skip step" to the context menu, under "Toggle Breakpoint", and adding a hash icon to the left of the line/row of the script. The keyboard shortcut should also be "#".

The ability to add text comments to lines of the recorder would also be very beneficial. Developers are expected to comment their code/scripts. Testers should too. It helps create maintainable code/scripts. For this feature I suggest adding a 4th text field called Comment under Command, Target, Value. Alternatively, allow Comment as a command, where the user can add any text in the Target and Value fields, with the entire line being ignored during execution

Copy Command Issue

When copying and pasting a command in Katalon Recorder (Firefox and Chrome) the target will not be copied correctly in the following way:

  • I add a new command and set the target, then attempt to copy and paste that command. If I have not saved the test suite prior to copying and pasting the command the target will be blank when pasting.
  • I modify a command's command, target, and value, then attempt to copy and paste that command. If I have not saved the test suite prior to copying and pasting the command the target will be what it was before editing it when I paste (the updates to the command and the value will be there though).

My guess is that this is due to the way that recorder saves prior targets so that you can select them from the drop-down. Frankly the only reason I can see for this is if you want the ability to just manually run the test multiple times while cycling different targets, but honestly I would think you would just do that with the coding of the test.

Error: call to eval() blocked by CSP

[info] Playing test case Daily check Katalon 2 / Entity Register
[info] Time: Tue Apr 02 2019 09:11:42 GMT+1100 (Australian Eastern Daylight Time) Timestamp: 1554156702770
[info] OS: Windows Version: 10
[info] Browser: Firefox Version: 66.0
[info] If the test cannot start, please refresh the active browser tab
[error] Error: call to eval() blocked by CSP
[info] Time: Tue Apr 02 2019 09:11:42 GMT+1100 (Australian Eastern Daylight Time) Timestamp: 1554156702855
[info] Test case failed

Some suggested enhancement requests for Katalon Recorder

Some UI suggestions for Katalon Recorder

  • Allow Test Suites to expand/contract in Katalon Recorder. This would make navigating through many open test suites and test cases much easier
  • Add a search option above the Test Suite navigation pane, to allow users to search for test suites and test cases they currently have open
  • For test suites either add a Save option (as opposed to SaveAs) and/or remember where the test suite file resides so the user does not have to navigate to their preferred storage location every time
  • When saving test suites save them as the Katalon Studio format by default. Obviously this comes with the overhead of having to make Katalon Recorder open those files without changing the nice and simple test case UI pane that users are presented with currently

"Play To Here" or Keyboard short for "Play This Command"

After recording a test case I often find the need to insert checks to ensure that Katalon-Recorder waits at the appropriate points.

As part of that process I often need to run portions of the test case but having to right-click on each statement to select "Play This Command" is a bit annoying.

It would be great if there was some keyboard shortcut that would allow me to quickly run the next command.

Additionally or alternatively it would be excellent if there was the option to "Play To Here" from the right-click command.

Otherwise I really appreciate the Katalon-Recorder.

As an FYI, I don't use the studio because I hope to give my clients the ability to easily create their own Test Scripts for their custom setups and Katalon-Recorder is wonderfully easy to get up and running.

Uploading images with error - Chrome

when trying to send images by command line , appear error below.

[error] {"code":-32000,"message":"Not allowed"}

image

Configurations:

Katalon recorder 3.6.12
Chrome 72.0.3626.119

Shadow DOM Elements

It does not work recording interactions on WebApps that use ShadowDom. IS there a way to include this?

Error: chrome is not defined

Hello, I git clone your code and can't start. Error: chrome is not defined, do you have a detailed startup document?

Is it possibile to duplicate a test case?

Hi guys,

I did use chrome extension and I am very happy with it
I just wondering, since I use 80-90% the same commands for every test case, is it possible to duplicate them to speed up the process?

Thanks

Daniele

Saving too difficult

Hi, thanks for providing Katalon Recorder, if you can make saving test cases and test suites easier, I may actually use it.

I use the Firefox addon version. Katalon Recorder does not remember which folder I saved the suite, so every time I try to save the test suite I must find the folder again. It seems to default to the Downloads folder.

The same goes for creating new tests within a test suite, saving is too difficult - make it a test case menu option. When the recorder works, each test case is saved, but sometimes it fails, and I have to make the test by hand by filling out the commands, and saving is way too difficult - why not just autosave?

What happens most times, is that the command form is just emptied, and I lose all the commands and selectors. It is very frustrating, so I hope you can help with this otherwise excellent tool. If there is something I am doing wrong, please let me know.

Cheers,

Haakon

Note: Originally posted in Katalon Forum in September 2018, https://forum.katalon.com/t/saving-too-difficult/13476 , currently 7 likes. :-)

Documentation for the sendKeys command - fix browsers' support

In the "Reference" tab for the sendKeys command, there is this sentence:

For special keys (e.g. ${KEY_ENTER}, ${KEY_SHIFT}, etc.), only Chrome version of the extension is supported.

Luckily, this seems to be no longer true, because I've just tested this (${KEY_ENTER}) in Firefox and it works there as well! :)

Our company policy blocks extension due to crxcavator.io/report and suggested to request developer to ask if issues planned to be fixed

https://crxcavator.io/report/ljdobmomdgdljniojadhoplhkpialdid/5.0.0 shows risk score of 758
in compare they allow those extensions (doing similar activities) with these notes:

please have their support review and comments on findings of https://crxcavator.io/report/ljdobmomdgdljniojadhoplhkpialdid/5.0.0
Content Security Policy, permissions should be reviewed, outdated libraries (includes old vulnerable libraries) should be fixed

Following testing extensions are already approved
Selenium IDE https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
Progress® Test Studio® Chrome Recorder https://chrome.google.com/webstore/detail/progress%C2%AE-test-studio%C2%AE-ch/fiahpmmidlchdfcdpckaclkancbnbgnl
Progress® Test Studio® Chrome Execution https://chrome.google.com/webstore/detail/progress%C2%AE-test-studio%C2%AE-ch/pncoonbpgmlbbjnnmaindchmjckkjcdb
Progress Telerik Test Studio Extension https://chrome.google.com/webstore/detail/progress-telerik-test-stu/gegcllkonmciadpdldechnepmjildoan
UiPath https://chrome.google.com/webstore/detail/uipath/dpncpimghfponcpjkgihfikppbbhchil
UiPath Web Automation https://chrome.google.com/webstore/detail/uipath-web-automation/dkgencfabioofgdmhhjljpkbbchbikbh
Selenium Page Object Generator https://chrome.google.com/webstore/detail/selenium-page-object-gene/epgmnmcjdhapiojbohkkemlfkegmbebb

is there any plan to mitigate issues from this report to resolve some or all security issues mentioned above?

export with Python show Unsupported command [dragAndDropToObject

ERROR: Caught exception [ERROR: Unsupported command [dragAndDropToObject | //div[@id='crowdPickMainArea']/div/div/div/div[2]/div/div | //div[@id='crowdPickConditionArea']/div/div]]

But I need the python scripts with the drag_and_drop method,I want to know how katalon-recorder do this

Make it work in all active tabs

thanks for this great extension it saves me a lot of time to execute some missions.
i have a question is there any possibility to run the extension in the same time on all the active tabs

Robot Framework export formatter missing dependency and other issues

We started playing around with the export for Robot Framework and found a number of issues. I spent some time over the past week reworking robot.js to get it to a point where the output RF script can successfully run unmodified:

  1. The output script depends on a file seleniumLibrary.robot that is not included with Katalon Recorder.
    -- Based on a hint from the README, I found the missing file in the Robot-Framework-Formatter project. Instead of just copying the file into Katalon Recorder (which would be difficult for RF to use), I changed the code so it embeds the content directly into the output script.

  2. The seleniumLibrary.robot implementation does not provide function for sendKeys or submit. (There are many others missing: these just came up first thing in our tests.)
    -- I added code to the output script that handles both. For sendKeys, I strip off the "KEY_" prefix of the key name and convert it to a constant on the way by... the Robot Framework implementation requires, for example, "ENTER" instead of "KEY_ENTER".

  3. The seleniumLibrary.robot implementation asks for Robot Framework's Selenium2Library instead of the current SeleniumLibrary.
    -- I changed the new output script to ask for the current SeleniumLibrary.

  4. The output script always specifies to use Firefox even if Chrome was used to generate it.
    -- I changed the formatter to query the running browser to look for and use "chrome" or "firefox". While it currently can't happen (because the extension is only available for Chrome and Firefox), I included an otherwise clause to default to "firefox" in the event the extension is enabled for another browser in the future.

  5. The test case name in the output script is always "Test Case".
    -- I changed the code to find and use the test case name as defined in Katalon Recorder(if available).

  6. The output script always demands to open www.katalon.com and then switches to the recorded website. While a nice ad for Katalon, this adds a lot of time to test runs.
    -- I changed the code to look at the first Selenium statement from Katalon Recorder. If it requests to open a browser, the output script launches directly to the website specified on that request. If not, it defaults to the original behavior of opening www.katalon.com first.

  7. The output script does not provide for controlling the speed of test execution.
    -- I added a provision for Set Selenium Speed to be adjusted via a variable named SELSPEED. In the output script, the speed is set to 0 (no delay). When Robot Framework is launched, the user can specify --variable SELSPEED:n to tune to their needs.

I hope to submit a pull request for the above later today. (My first time submitting code through github... please be gentle.) Suggestions welcome.


Note: I did toy with the idea of directly mapping Selenium commands to Robot Framework commands. The current implementation does this:

   *** Test Cases ***
   My Test Case   
       submit  id=search_form_page

   *** Keywords ***
   submit
       [Arguments]    ${element}
       Submit Form    ${element}

The test case line is an adaptation of the original Selenium line from Katalon Recorder... basically, the "|" characters are stripped out to make it look to Robot Framework like a regular keyword call. The last three lines are provided from seleniumLibrary.robot (now directly embedded). So at run time, Robot Framework sees the test case line as a call to "submit" and transfers control to the "submit" keyword/function who in turn launches RF/SeleniumLibrary's "Submit Form".

While this works, it is inefficient. First, it means all the possible mappings are defined ahead of time and are always interpreted by RF: even if they aren't used. Second, it means every step requires a call to the translate keyword/function, parsing of arguments, and another call to the real target keyword/function. The robot.js script could just as easily generate the translation directly, like this:

    *** Test Cases ***
    My Test Case
        # submit | id=search_form_page |
        Submit Form id=search_form_page

The first line is a comment reflecting the original that came from Katalon Recorder as-is. The second would be the RF equivalent as derived by the formatter... invoked directly instead of with all the overhead of the original. As a side effect, traces and logs from RF would be much simpler.

Like I said, I didn't implement this in the forthcoming pull request. It's just an optimization I'd like to consider in the future... and would like to hear opinions before investing the time.

Custom commands loaded from extension scripts are not shown in the GUI

If one reads the documentation for how to create extension scripts:

https://docs.katalon.com/katalon-recorder/docs/extension-scripts-aka-user-extensionsjs-for-custom-locator-builders-and-actions.html

... he/she might get a feeling that new commands available due to the extension scripts will be somehow highlighted and returned from the commands suggester. This is not truth though.

So can you please either make this clear in the docs (= easy to do), or better implement such a feature (= harder to do)?

BTW There aren't probably any tips for efficiently writing (e. g. what's the API that can be called?) and debugging the extension scripts either, but that is possibly a topic for another issue...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.