1.1.813 • Published 4 years ago

protractor-helpers v1.1.813

Weekly downloads
950
License
MIT
Repository
github
Last release
4 years ago

Protractor Helpers

This library extends Protractor API with a commonly used API. It helps write more understandable and clean tests with a well-defined separation between the test logic and the app under the test logic. It consists of four extension types: elements, helpers, locators, and matchers.

Get Started

  • Get Protractor Helpers via npm by running $ npm install --save-dev protractor-helpers from your console.
  • In your e2e tests, import the protractor-helpers module and start using it.
var helpers = require('protractor-helpers');

Usage

Elements

The Elements API extends ElementArrayFinder with:

getByText(comparedTest:string) => ElementFinder

example (choosing a date from a calendar):

$$('.calendar').getByText('27').click();

Helpers

  • not - Returns the negative value of a Promise.
helpers.not($('.some-element').isDisplayed());
  • translate - Returns the translated key with translation values.
expect($('.some-element').getText()).toEqual(helpers.translate('SOME_TRANSLATION_KEY'));
  • safeGet - Navigates to a URL, maximizing the window and resetting the mouse position.
helpers.safeGet('./SomeUrl');
  • maximizeWindow - Maximizes the window to a given size or a default size.
helpers.maximizeWindow(500, 500);
  • resetPosition - Resets the mouse position.
helpers.resetPosition();
  • displayHover - Displays an element that appears only on hover state.
helpers.displayHover($('.some-element'));
  • waitForElement - Waits for an element to be shown.
helpers.waitForElement($('.some-element'), timeout, optionalMessage);
  • waitForElementToDisappear - Waits for an element not to be shown.
helpers.waitForElementToDisappear($('.some-element'), timeout, optionalMessage);
  • selectOptionByText - Selects an element from a selection box.
helpers.selectOptionByText($('select'), 'options-to-select');
  • selectOptionByIndex - Selects an element from a selection box.
helpers.selectOptionByIndex($('select'), 0);
  • selectOption - Selects a given option.
helpers.selectOption($$('select option').first());
  • isFirefox - Indicates whether Firefox is the browser.
if (helpers.isFirefox()) {
  // Do FF stuff here . . .
}
  • createMessage - Creates a matchers message with {{locator}}, {{not}}, and {{actual}} as placeholders.
helpers.createMessage(this, 'Expected {{locator}}{{not}}to have image') + '.');
  • isIE - Indicates whether Internet Explorer is the browser.
if (helpers.isIE()) {
  // Do IE stuff here . . .
}
  • clearAndSetValue - Allows setting a new value to an input field (rather than appending text).
helpers.clearAndSetValue(inputField, 'text to populate');
  • getFilteredConsoleErrors - Returns console error messages resulting from the test run.
  • Ignores livereload error (since it is not loaded in CI mode), messages with warn and below severity, and a known Firefox bug (https://bugzilla.mozilla.org/show_bug.cgi?id=1127577).
  • Can be used to validate that there are no console errors.
expect(helpers.getFilteredConsoleErrors().length).toBe(0);
  • hasClass - Checks whether an element has a class.
helpers.hasClass(element, 'class-name');

Locators

Adds two locators: by.dataHook and by.dataHookAll. Searches for element(s) with the data-hook attribute. For example:

<ul>
  <li data-hook="first">First</li>
  <li data-hook="second">Second</li>
</ul>
element(by.dataHook('first')).click() - click on the first data hook

Matchers

The Matchers API extends the available matchers:

  • toBePresent - Checks whether an element is present (exists in the DOM).
expect($('.some-element')).toBePresent();
  • toBeDisplayed - Checks whether an element is displayed (visible in the DOM).
expect($('.some-element')).toBeDisplayed();
  • toHaveCountOf - Checks whether the length passes to the function against the value it's invoked with.
expect($('.some-elements').count()).toHaveCountOf(expectedCount);
  • toHaveText - Checks whether an element contains text.
expect($('.some-element')).toHaveText(expectedText);
  • toMatchRegex - Checks whether an element's text fits a regex.
expect($('.some-element')).toMatchRegex(expectedPattern);
  • toMatchMoney - Checks whether an element's text fits rtl money regex.
expect($('.some-element').getText()).toMatchMoney(expectedValue, currencySymbol);
  • toMatchMoneyWithFraction - Checks whether an element's text fits rtl money regex with fraction.
expect($('.some-element').getText()).toMatchMoneyWithFraction(expectedValue, currencySymbol);
  • toHaveValue - Checks whether an element's value attribute fits the expectedValue.
expect($('.some-element')).toHaveValue(expectedValue);
  • toHaveClass - Checks whether an element has a specific class name.
expect($('.some-element')).toHaveClass(className);
  • toBeDisabled - Checks whether an element is disabled.
expect($('.some-element')).toBeDisabled();
  • toBeChecked - Checks whether an element checkbox is checked.
expect($('.some-element')).toBeChecked();
  • toBeValid - Checks whether a form element is valid (using the ng-valid class name).
expect($('.some-element')).toBeValid();
  • toBeInvalid - Checks whether a form element is invalid (using the ng-invalid class name).
expect($('.some-element')).toBeInvalid();
  • toBeInvalidRequired - Checks whether a form element is invalid and required (using the ng-invalid-required class name).
expect($('.some-element')).toBeInvalidRequired();
  • toMatchTranslated - Checks whether an element contains a translation value.
expect($('.some-element')).toMatchTranslated(key, values);

License

The MIT License.

See LICENSE

1.1.813

4 years ago

0.0.0

4 years ago

1.1.812

5 years ago

1.1.811

5 years ago

1.1.810

5 years ago

1.1.809

5 years ago

1.1.808

5 years ago

1.1.807

5 years ago

1.1.806

5 years ago

1.1.805

5 years ago

1.1.804

5 years ago

1.1.803

5 years ago

1.1.802

5 years ago

1.1.801

5 years ago

1.1.800

5 years ago

1.1.799

5 years ago

1.1.798

5 years ago

1.1.797

5 years ago

1.1.796

5 years ago

1.1.795

5 years ago

1.1.794

5 years ago

1.1.793

5 years ago

1.1.792

5 years ago

1.1.791

5 years ago

1.1.790

5 years ago

1.1.789

5 years ago

1.1.788

5 years ago

1.1.787

5 years ago

1.1.786

5 years ago

1.1.785

5 years ago

1.1.784

5 years ago

1.1.783

5 years ago

1.1.782

5 years ago

1.1.781

5 years ago

1.1.780

5 years ago

1.1.779

5 years ago

1.1.778

5 years ago

1.1.777

5 years ago

1.1.776

5 years ago

1.1.775

5 years ago

1.1.774

5 years ago

1.1.773

5 years ago

1.1.772

5 years ago

1.1.771

5 years ago

1.1.770

5 years ago

1.1.769

5 years ago

1.1.768

5 years ago

1.1.767

5 years ago

1.1.766

5 years ago

1.1.765

5 years ago

1.1.764

5 years ago

1.1.763

5 years ago

1.1.762

5 years ago

1.1.761

5 years ago

1.1.760

5 years ago

1.1.759

5 years ago

1.1.758

5 years ago

1.1.757

5 years ago

1.1.756

5 years ago

1.1.755

5 years ago

1.1.754

5 years ago

1.1.753

5 years ago

1.1.752

5 years ago

1.1.751

5 years ago

1.1.750

5 years ago

1.1.749

5 years ago

1.1.748

5 years ago

1.1.747

5 years ago

1.1.746

5 years ago

1.1.745

5 years ago

1.1.744

5 years ago

1.1.743

5 years ago

1.1.742

5 years ago

1.1.741

5 years ago

1.1.740

5 years ago

1.1.739

5 years ago

1.1.738

5 years ago

1.1.737

5 years ago

1.1.736

5 years ago

1.1.735

5 years ago

1.1.734

5 years ago

1.1.733

5 years ago

1.1.732

5 years ago

1.1.731

5 years ago

1.1.730

6 years ago

1.1.729

6 years ago

1.1.728

6 years ago

1.1.727

6 years ago

1.1.726

6 years ago

1.1.725

6 years ago

1.1.724

6 years ago

1.1.723

6 years ago

1.1.722

6 years ago

1.1.721

6 years ago

1.1.720

6 years ago

1.1.719

6 years ago

1.1.718

6 years ago

1.1.717

6 years ago

1.1.716

6 years ago

1.1.715

6 years ago

1.1.714

6 years ago

1.1.713

6 years ago

1.1.712

6 years ago

1.1.711

6 years ago

1.1.710

6 years ago

1.1.709

6 years ago

1.1.708

6 years ago

1.1.707

6 years ago

1.1.706

6 years ago

1.1.705

6 years ago

1.1.704

6 years ago

1.1.703

6 years ago

1.1.702

6 years ago

1.1.701

6 years ago

1.1.700

6 years ago

1.1.699

6 years ago

1.1.698

6 years ago

1.1.697

6 years ago

1.1.696

6 years ago

1.1.695

6 years ago

1.1.694

6 years ago

1.1.693

6 years ago

1.1.692

6 years ago

1.1.691

6 years ago

1.1.690

6 years ago

1.1.689

6 years ago

1.1.688

6 years ago

1.1.687

6 years ago

1.1.686

6 years ago

1.1.685

6 years ago

1.1.684

6 years ago

1.1.683

6 years ago

1.1.682

6 years ago

1.1.681

6 years ago

1.1.680

6 years ago

1.1.679

6 years ago

1.1.678

6 years ago

1.1.677

6 years ago

1.1.676

6 years ago

1.1.675

6 years ago

1.1.674

6 years ago

1.1.673

6 years ago

1.1.672

6 years ago

1.1.671

6 years ago

1.1.670

6 years ago

1.1.669

6 years ago

1.1.668

6 years ago

1.1.667

6 years ago

1.1.666

6 years ago

1.1.665

6 years ago

1.1.664

6 years ago

1.1.663

6 years ago

1.1.662

6 years ago

1.1.661

6 years ago

1.1.660

6 years ago

1.1.659

6 years ago

1.1.658

6 years ago

1.1.657

6 years ago

1.1.656

6 years ago

1.1.655

6 years ago

1.1.654

6 years ago

1.1.653

6 years ago

1.1.652

6 years ago

1.1.651

6 years ago

1.1.650

6 years ago

1.1.649

6 years ago

1.1.648

6 years ago

1.1.647

6 years ago

1.1.646

6 years ago

1.1.645

6 years ago

1.1.644

6 years ago

1.1.643

6 years ago

1.1.642

6 years ago

1.1.641

6 years ago

1.1.640

6 years ago

1.1.639

6 years ago

1.1.638

6 years ago

1.1.637

6 years ago

1.1.636

6 years ago

1.1.635

6 years ago

1.1.634

6 years ago

1.1.633

6 years ago

1.1.632

6 years ago

1.1.631

6 years ago

1.1.630

6 years ago

1.1.629

6 years ago

1.1.628

6 years ago

1.1.627

6 years ago

1.1.626

6 years ago

1.1.625

6 years ago

1.1.624

6 years ago

1.1.623

6 years ago

1.1.622

6 years ago

1.1.621

6 years ago

1.1.620

6 years ago

1.1.619

6 years ago

1.1.618

6 years ago

1.1.617

6 years ago

1.1.616

6 years ago

1.1.615

6 years ago

1.1.614

6 years ago

1.1.613

6 years ago

1.1.612

6 years ago

1.1.611

6 years ago

1.1.610

6 years ago

1.1.609

6 years ago

1.1.608

6 years ago

1.1.607

6 years ago

1.1.606

6 years ago

1.1.605

6 years ago

1.1.604

6 years ago

1.1.603

6 years ago

1.1.602

6 years ago

1.1.601

6 years ago

1.1.600

6 years ago

1.1.599

6 years ago

1.1.598

6 years ago

1.1.597

6 years ago

1.1.596

6 years ago

1.1.595

6 years ago

1.1.594

6 years ago

1.1.593

6 years ago

1.1.592

6 years ago

1.1.591

6 years ago

1.1.590

6 years ago

1.1.589

6 years ago

1.1.588

6 years ago

1.1.587

6 years ago

1.1.586

6 years ago

1.1.585

6 years ago

1.1.584

6 years ago

1.1.583

6 years ago

1.1.582

6 years ago

1.1.581

6 years ago

1.1.580

6 years ago

1.1.579

6 years ago

1.1.578

6 years ago

1.1.577

6 years ago

1.1.576

6 years ago

1.1.575

6 years ago

1.1.574

6 years ago

1.1.573

6 years ago

1.1.572

6 years ago

1.1.571

6 years ago

1.1.570

6 years ago

1.1.569

6 years ago

1.1.568

6 years ago

1.1.567

6 years ago

1.1.566

6 years ago

1.1.565

6 years ago

1.1.564

6 years ago

1.1.563

6 years ago

1.1.562

6 years ago

1.1.561

6 years ago

1.1.560

6 years ago

1.1.559

6 years ago

1.1.558

6 years ago

1.1.557

6 years ago

1.1.556

6 years ago

1.1.555

6 years ago

1.1.554

6 years ago

1.1.553

6 years ago

1.1.552

6 years ago

1.1.551

6 years ago

1.1.550

6 years ago

1.1.549

6 years ago

1.1.548

6 years ago

1.1.547

6 years ago

1.1.546

6 years ago

1.1.545

6 years ago

1.1.544

6 years ago

1.1.543

6 years ago

1.1.542

6 years ago

1.1.541

6 years ago

1.1.540

6 years ago

1.1.539

6 years ago

1.1.538

6 years ago

1.1.537

6 years ago

1.1.536

6 years ago

1.1.535

6 years ago

1.1.534

6 years ago

1.1.533

6 years ago

1.1.532

6 years ago

1.1.531

6 years ago

1.1.530

6 years ago

1.1.529

6 years ago

1.1.528

6 years ago

1.1.527

6 years ago

1.1.526

6 years ago

1.1.525

6 years ago

1.1.524

6 years ago

1.1.523

6 years ago

1.1.522

6 years ago

1.1.521

6 years ago

1.1.520

6 years ago

1.1.519

6 years ago

1.1.518

6 years ago

1.1.517

6 years ago

1.1.516

6 years ago

1.1.515

6 years ago

1.1.514

6 years ago

1.1.513

6 years ago

1.1.512

6 years ago

1.1.511

6 years ago

1.1.510

6 years ago

1.1.509

6 years ago

1.1.508

6 years ago

1.1.507

6 years ago

1.1.506

6 years ago

1.1.505

6 years ago

1.1.504

6 years ago

1.1.503

6 years ago

1.1.502

6 years ago

1.1.501

6 years ago

1.1.500

6 years ago

1.1.499

6 years ago

1.1.498

6 years ago

1.1.497

6 years ago

1.1.496

6 years ago

1.1.495

6 years ago

1.1.494

6 years ago

1.1.493

6 years ago

1.1.492

6 years ago

1.1.491

6 years ago

1.1.490

6 years ago

1.1.489

6 years ago

1.1.488

6 years ago

1.1.487

6 years ago

1.1.486

6 years ago

1.1.485

6 years ago

1.1.484

6 years ago

1.1.483

6 years ago

1.1.482

6 years ago

1.1.481

6 years ago

1.1.480

6 years ago

1.1.479

6 years ago

1.1.478

6 years ago

1.1.477

6 years ago

1.1.476

6 years ago

1.1.475

6 years ago

1.1.474

6 years ago

1.1.473

7 years ago

1.1.472

8 years ago

1.1.471

8 years ago

1.1.470

8 years ago

1.1.469

8 years ago

1.1.468

8 years ago

1.1.467

8 years ago

1.1.466

8 years ago

1.1.465

8 years ago

1.1.464

8 years ago

1.1.463

8 years ago

1.1.462

8 years ago

1.1.461

8 years ago

1.1.460

8 years ago

1.1.459

8 years ago

1.1.458

8 years ago

1.1.457

8 years ago

1.1.456

8 years ago

1.1.455

8 years ago

1.1.454

8 years ago

1.1.453

8 years ago

1.1.452

8 years ago

1.1.451

8 years ago

1.1.450

8 years ago

1.1.449

8 years ago

1.1.448

8 years ago

1.1.447

8 years ago

1.1.446

8 years ago

1.1.445

8 years ago

1.1.444

8 years ago

1.1.443

8 years ago

1.1.442

8 years ago

1.1.441

8 years ago

1.1.440

8 years ago

1.1.0

8 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

10 years ago

2.0.0

10 years ago

0.3.6

10 years ago

0.3.5

10 years ago

0.0.3

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago