Giter Site home page Giter Site logo

igor's Introduction

Igor is a query engine that selects views in a iOS application, based on each view's class, properties, containment relationship to other views, and other characteristics.

See the Igor Wiki for details.

igor's People

Contributors

dhemery 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

Watchers

 avatar  avatar  avatar

igor's Issues

Keep Open

A dummy issue to keep the Some Day milestone open even if all other issues are closed.

New Igor release (for cocoapods)

The last "release", 0.5.0, is a year old and used by cocoapods thusly. At the very least, the fix in issue #12 needs to be released for Igor to build in the latest XCode.

Any obvious issue with releasing master as ex. 0.6.0? (I suspect a years' worth of development is more than a point update, but just guessing).

Configure "identifier" properties at runtime.

Allow the user to specify which property is examined by each style of identifier pattern.

The default property for #word and #"string" patterns is accessibilityIdentifier. Allow the user to associate these patterns with a different property, or perhaps with a prioritized list of properties.

Similarly, the default property for #number patterns is tag. Allow the user to specify another property, or a prioritized list of properties.

One possibility: Configure these at runtime via category methods added to the application delegate (e.g. setIgorNumericIdentifierProperty: and setIgorStringIdentifierProperty).

Another: Configure these through files in the application bundle.

engine named 'igor' hasn't been registered with the SelectorEngineRegistry

Hi Dhemery,

I ran the below code
private static final IosViewIdentifier createAccount = igor("UITextFieldLabel[accessibilityLabel=='Email Address']");
@test
public void testA() {
Thread.sleep(10000);
IosView button = application().view(createAccount);
button.sendMessage("touch");
}

and facing the error

Operation failed
Target : igor UITextFieldLabel[accessibilityLabel=='Email Address']
Operation : touch []
Reason : invalid selector
Details : engine named 'igor' hasn't been registered with the SelectorEngineRegistry18:36:53.859 INFO - Stop Simulator --> killall [iPhone Simulator]

Please ping point where I went wrong.

class 'DEIgorParserException' defined without specifying a base class

When compiled under Xcode 4.6 or older, following warning is shown:

    - NOTE  | [xcodebuild]  Igor/igor/parser/DEIgorParserException.h:1:12: warning: class 'DEIgorParserException' defined without specifying a base class [-Wobjc-root-class]
    - NOTE  | [xcodebuild]  Igor/igor/parser/DEIgorParserException.h:1:33: note: add a super class to fix this problem

Version: 0.5.0

Prefix all Igor class names

Igor class names might conflict with other people's class names. So: Prefix Igor class names to prevent conflicts.

Possible prefix: DFX

Don't use DEBUG flag to omit Frank references from unit test build

The IgorLoader.m file uses the DEBUG flag to determine whether to include the code that registers Igor with Frank. This is probably the wrong thing to do.

Two possibilities:

  • Use some other flag for that conditional compilation.
  • Don't use conditional compilation. Instead, test against the compiled .o files instead of the .a product, and omit IgorLoader.m from the test build.

Search all windows (not only key window)

Add syntax to search all windows. Caret indicates 'all windows,' so:

^ UIKeyboardLayoutStar

finds UIKeyboardLayoutStar views in all windows.

The caret must be the first non-whitespace character in the query.

Possibility: The caret may combine with a normal instance pattern to select which windows are inspected.

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.