npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

protractor_not_ng

v1.3.2

Published

End to end test tools for non ng app

Downloads

4

Readme

Toolset for testing non angular app with protractor

Here you'll find some tools to use protractor with a non angular app. I try to hide all traps into internal mechanic, so the final user should don't care about them.

I try to keep this npm package as simple as possible.

Element - the basic item!

Everything is an element.

This class is extended by Input && Select, how are the two main nodetypes I use - if this isn't select nor input, then this is a simple Element -.

Constructor

var el = new Element(_aLocator_: ProtractorBy);

You can use every locator offered by the original webdriver. See documentation here

When an Element is constructed, basical informations about it are loaded. Basical informations are :

  1. Display state (is the element visible?)
  2. Disable state (is the element disabled?)
  3. Readonly state (is the element marked as readonly?).

isEnabled(): Promise<boolean>

This method return a promise resolved by a boolean that indicate if the element is enabled.

isReadonly(): Promise<boolean>

This method return a promise resolved by a boolean that indicate if the element is considered as readonly.

An element is considered as readonly if he has a "readonly" or a "disabled" attribute.

click(): Promise<any>

This method return a promise how is gonna be resolved by when click action is done.

getAttribute(attrName: string): promise.Promise<string>

Return a promise resolved with the requested attribute.

Select

When a Select is constructed, all basic informations are loaded using inheritance, but also every available options.

This allow us to easyly manipulate the item, and to know with more efficiency if an option is contained or not (and to simplify every action related to them).

selectRandomValue: Promise<any>

Select randomly a value in every available value. Can be usefull if you need to select something but you don't care about what!

A promise is returned and resolved when an option has been selected.

selectOption(searchedOptionText: string): Promise<any>

Select the option how match the provided searchedOptionText, and return a promise resolved when the option has been selected.

getSelectedOption(): Promise<WebElement>

Return a promise how will be resolved by the webelement corresponding to the currently selected option.

If no option is currently selected, returned promise will be rejected.

containOption(searchedOptionText: string): Promise<boolean>

Return a promise reolved by a truthy boolean if the searched option is found.

getAvailableOptions: Promise<string[]>

Return a promise resolved with an array of every option label.

Input

setValue(value: string): Promise<boolean>

Return a promise resolved when value has been updated.

If the input is marked as readonly or disabled, returned promise will be rejected.

Logger - My best friend

By design, this package does not print anything on output, wich can be a little harsh to debug.

To be able to understand what is done and when, a Logger is used internally. You can register as many callback as you want, and print onto console, write to a file, call WS, whatever.

OnLog((i: any): void)

Register the callback.