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 🙏

© 2024 – Pkg Stats / Ryan Hefner

protractor-hotkeys

v0.0.5

Published

An angular-hotkeys styled API for triggering keyboard shortcuts in Protractor tests

Downloads

1,561

Readme

protractor-hotkeys

An angular-hotkeys styled API for triggering keyboard shortcuts in Protractor tests.

vanilla Protractor

// send ctrl+a to the webpage
browser.actions().keyDown(protractor.Key.CONTROL).sendKeys('a').perform();

protractor-hotkeys

var hotkeys = require('protractor-hotkeys');
hotkeys.trigger('ctrl+a');
// testing the konami code Easter Egg on your site is easy
hotkeys
    .trigger('up up down down')
    .trigger('left right left right')
    .trigger('b a enter');

Targeting hotkey commands at a specific element

By default, all keyboard command sequences will target the <body> tag, but you can pass in a targetElement if you need to send keyboard shortcuts to someplace else on the page.

hotkeys.trigger('g g', { targetElement: $('.content-area') });

Testing

This works on Firefox and Chrome on Mac. I only test the easiest, platform-independent shortcuts. Hopefully I have captured most of the testing surface with these.

  • single characters ('i', 'I', '?')
  • single characters pressed in succession ('g g', 'G G')
  • directional arrows ('left', 'right')
  • function keys ('f1', 'f10')
  • control, shift, and alt keys as modifiers ('ctrl+up', 'shift+tab', 'alt+down')
  • uncommon keys ('capslock', 'delete', 'backspace', 'space', 'home', 'pageup')
  • complex combinations of the above (Konami-code style stuff)

On the mod key (aka "super", aka ⌘, aka WindowsKey)

I make no promises about how this library will function using these keys. I did some local testing on a Mac, so the command key should work just as it does in angular-hotkeys (the 'mod' string can be used, but it is mapped to Selenium's META key). In the future, it may be worth it to use this library as a unifying interface between Linux, Mac, and Windows keyboard layouts.

If you are able to decide what keyboard shortcuts your app can use, please consider not using this "super" key. If you'd like to read up on it, this stackoverflow question has some good points. For the best experience, copy Github and stick with single character and shift-modifier shortcuts.