FAQ

  1. General Questions
    1. When is the generator for X language/framework going to be ready?
    2. Can SnapTest generate the Selenium code with page objects?
    3. Does SnapTest work on Firefox?
    4. Is SnapTest open-source?
    5. I don't want SnapTest to keep my tests in the cloud, is there a solution for that?
    6. Why does SnapTest generate Selenium code if it can be run in the extension?
    7. How do I enable "Private Mode" where I can import/export JSON?
  2. Current Capabilities - "Can SnapTest do X? "
    1. Can SnapTest selectors use XPath as well as CSS selectors?
    2. My website/application uses dynamic IDs, so when I play back a recording, it won't work.
    3. Can SnapTest work with iFrames?
    4. Does this work with React/Vue/Angular etc.
    5. I need more advanced assertions, what can I do?
    6. Can a test interact with a database to setup/teardown test data?
    7. How can I store my tests in source control?
    8. Can SnapTest import my Selenium IDE tests?
    9. Can I report test results to an integration like Slack?
    10. How does SnapTest handle beforeEach or beforeAll?
    11. How can I get past a CAPTCHA on a form?
  3. Commonly-encountered Issues
    1. Why isn't "Clear cookies" clearing the cookies?
    2. Why is an action turning yellow and not executing on playback?

General Questions:

1. When is the generator for X language/framework going to be ready?

We will be making many official framework generators for SnapTest, but if a desired language/framework doesn't exist yet, please contact us and we can consider making it for you. Also, check our trello roadmap board to see if we already have it on the roadmap.

The official generators are open-source, and you can help contribute to the building of more styles. Also, if you don't want to go through the approval process of being merged into the official code generators, we have a mechanism to let you run your own generator with the snaptest-cli.

back to top.

2. Can SnapTest generate the Selenium code with page objects?

Each framework/language can have different "styles of code". We have a "page-object" version of NightwatchJS in the works right now. If it's going to slowly for you, please read the previous question's answer to understand how to contribute to the code generation.

back to top

3. Does SnapTest work on Firefox?

SnapTest is a chrome extension, but we are considering making a port for Firefox. Generated automation code will definitely run on any browser the framework support.

back to top

4. Is SnapTest open-source?

The snaptest-cli tool, official framework generators, and framework harnesses are open source. The actual extension code is not.

back to top

5. I don't want SnapTest to keep my tests in the cloud, is there a solution for that?

We are dedicated to keeping your tests and data highly secure. Everything is over HTTPS and encrypted in the database. If you're still concerned about the privacy of your test data, we have a "Private mode" feature where you can import/export test JSON blobs, and we won't keep any data on the cloud. It will be a feature of the premium service, but for now you can sign-up for the free premium beta here. Afterwards, it'll be available in the user context switcher in the extension (top-right of the screen).

back to top

6. Why does SnapTest generate Selenium code if it can be run in the extension?

SnapTest automates the browser using pure Javascript. Unfortunately, there are many things QA testers need to do that can't be played back via this technology due to security limitations - such as iframes, changing windows, advanced drag-and-drop, etc. Generated Selenium code can easily do these things. In fact, generated Selenium code can also:

  1. Open new browser windows with new cookies and caches between each test, improving consistency.
  2. Can run in more browsers than just Chrome.
  3. Can be run in parallel (2+ browsers each running a test, which causes your test suite to finish faster.)
  4. Can be easily integrated with build systems and can be run headlessly.
  5. Can be run on the advanced Selenium-grids.

In addition to Selenium, SnapTest will generate for even cooler playback frameworks, such a RobotFramework, TestCafe, Cypress.io, etc. Giving you the option to adopt the newest and most awesome ways to run tests.

back to top

7. How do I enable "Private Mode" where I can import/export JSON?

Currently, Private Mode is in the premium beta. You can sign up for free here. After signing up, you'll switch to the "Private Mode" context from the dropdown in the upper-right of the tool.


Current Capabilities

1. Can SnapTest selectors use XPath as well as CSS selectors?

Yes. As of v0.5.4 we've added support for XPath and selecting elements by text!

back to top

2. My website/application uses dynamic IDs, so when I play back a recording, it won't work.

SnapTest uses a layered strategy when auto-generating a selector in the record/assert modes. It's a 3 strategy approach to generate a unique selector. First, it starts by looking for id/name, then falls back to a common ancestor solution, and finally falls back to a stupid "div > nth-of-whatever(2)" (last resort which should be changed manually).

The second strategy will work on dynamic id's, so we'll be introducing a way to turn off or re-order the priorities for the strategies. Please contact us to let us know you need it.

back to top

3. Can SnapTest work with iFrames?

We will support iFrame functionality for the framework generators. The SnapTest extensions record/playback modes can't properly work with iframes due to Chrome security limitations, so you'll have to manually configure and execute the iframe actions, until they are being played via a generated framework.

back to top

4. Does this work with React/Vue/Angular etc.

We have not yet heard of a front or back-end framework SnapTest couldn't generate for.

back to top

5. I need more advanced assertions, what can I do?

We can add new assertions very quickly. Please let us know what you need.

back to top

6. Can a test interact with a database to setup/teardown test data?

This is on the roadmap, but hasn't been implemented yet. If you have ideas of how you'd like it, please contact us.

back to top

7. How can I store my tests in source control?

You can either commit the SnapTest JSON or the generated code. The JSON is available for import/export in the private mode.

back to top

8. Can I import my Selenium IDE tests?

Right now, we don't have a mechanism to import Selenium IDE tests. We welcome any contribution to a simple script that converts Selanese to SnapTest JSON, which can be imported.

back to top

back to top

9. Can I report test results to an integration like Slack?

Currently, SnapTest can't do integrations. We'll be adding mechanisms to allow for it, including the:

  1. "Setup/Teardown hooks" for beforeAll/afterAll.
  2. "HTTP request actions" with templating variables to report results.

Keep an eye on our Updates to see if these have been released yet.

back to top

10. How does SnapTest handle beforeEach or beforeAll?

Currently, SnapTest can't handle before/afterEach or before/afterAll. In the near future (or now if I forgot to update this FAQ), there will be optional action lists for these "setup/teardown hooks". Since SnapTest doesn't have direct access to your servers since it's a chrome extension, you will have the ability to utilize "HTTP request actions" which will allow you to send off a POST (etc.) request to your setup/teardown server or even an integration such as Slack.

Keep an eye on our Updates to see if these have been released yet.

back to top

11. How can I get past a CAPTCHA on a form?

Captcha's are designed to prevent applications like SnapTest to get past a certain point, so in order to test an application with Captcha's, you'll need to make a secret "backdoor" around it for testing purposes. This is better described in this stack overflow post.

back to top


Common issues:

1. Why isn't "Clear cookies" clearing the cookies?

There are two possible things you're doing wrong.

  1. The "value" of the clear cookies action needs to include the protocol. For example, "www.snaptest.io" won't work, but "https://www.snaptest.io" will.
  2. Sometimes, your website is using an API endpoint that is different than the domain hosting it.

back to top

2. Why is an action turning yellow and not executing on playback?

A yellow action refers to one that is "Selenium-only", and will work only when running the generated code. Please refer to the actions reference for more details about this.

back to top

Group 6Record it…Play it…Generate it…GeneratorsSelector AlgorithmsPrivate modeTest organizationTeamsWorkspacesDedicated supportTest data storageDebugger toolsAdaptable TestsCLI tools and APIWhite-labeled codeVariablesMulti-test playbackManual testsComponents