Giter Club home page Giter Club logo

jspy's Introduction

JSpy

JSpy is a tool that displays the component properties of any java Swing application in the simplest way. To automate Swing applications, You generally need to venture into the application's sources to retrieve the component's properties. That's very time consuming and frustrating or even impossible. Using JSpy all You need to do to get the component's properties is to hover the coursor over the component.

Dependencies

JSpy is operating system independent — it just needs Java 8 or newer.

Building from sources

We’ll go with IntelliJ for compiling this First clone the repository

git clone github.com/nokia/JSpy.git

Open cloned JSpy directory in IntelliJ. Go to File>Project Structure>Artifact Add a jar artifact, point it to manifest file and set spyGui.SpyMain as Main Class

To compile build the jar Artifact with attached manifest.

Requirements

If you want to use JSpy with Java WebStart applications, you should create .java.policy file in your home directory. Content of the file should be:

grant {
    permission java.security.AllPermission;
};

Running

To execute jSpy call it from the console:

java -jar JSpy.jar

Usage

When started go into File > Execute Command

Execute Command: javaws C:\path\to\file.jnlp

License

This project is licensed under the Apache-2.0 license - see the LICENSE.

jspy's People

Contributors

csatarigergely avatar muresanrazvan avatar rticau avatar wojtekkowaluk avatar

Stargazers

 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  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

jspy's Issues

Keep history of commands

It would be nice to provide list of recently used commands, so user can easily execute command he used before instead of forcing him to retype command or copy/paste it. Such list need to be remembered between program runs.

Identify properties of already open swing app

how to get object properties of swing app fields? Similar to UISPY.exe or inspect.exe or F12 developer options for browser. As a functional tester, i do not have access to the AUT code to pickup the swing app java class and instead to use a bat file or webstart to start a java think client. let me know jspy can identify the components of already opened swing app and I can refer this components properties for my functional automation testing tools.

Executing of command fails if it contains filename with spaces

This is because ProcessBuilder expect tokenized input (e.g. array of strings). Current code divides command into arguments on every space. We need to at support quoting with double quotes or escaping space with backslash. Solution would be either to write simple parser or use one of existing libraries which handle this task.

Numeric ID reported by JSpy sometimes don't match IDs of SwingLibrary

Seems way how JSpy enumerate components and how SwingLibrary enumerate components is different.
We need to check why this happens, I suspect they may handle differently components that exist but are not visible.

Also it would be nice to report generic compoment ID too for specific components, e.g. for button I want have ID to use for Button keywords but also I want ID to use with Component keyword, which will be different.

Resolve jar name for `javauseragent` at runtime

JSpy needs to set javauseragent parameter via JAVA_TOOL_OPTIONS environment variable. Currently jar name is fixed to be JSpy.jar which won't work if jar name is renamed to anything else. Actual jar name should be determined at runtime with use of Java reflection capabilities.

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.