1.1.813 • Published 3 years ago

protractor-helpers v1.1.813

Weekly downloads
950
License
MIT
Repository
github
Last release
3 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

3 years ago

0.0.0

3 years ago

1.1.812

4 years ago

1.1.811

4 years ago

1.1.810

4 years ago

1.1.809

4 years ago

1.1.808

4 years ago

1.1.807

4 years ago

1.1.806

4 years ago

1.1.805

4 years ago

1.1.804

4 years ago

1.1.803

4 years ago

1.1.802

4 years ago

1.1.801

4 years ago

1.1.800

4 years ago

1.1.799

4 years ago

1.1.798

4 years ago

1.1.797

4 years ago

1.1.796

4 years ago

1.1.795

4 years ago

1.1.794

4 years ago

1.1.793

4 years ago

1.1.792

4 years ago

1.1.791

4 years ago

1.1.790

4 years ago

1.1.789

4 years ago

1.1.788

4 years ago

1.1.787

4 years ago

1.1.786

4 years ago

1.1.785

4 years ago

1.1.784

4 years ago

1.1.783

4 years ago

1.1.782

4 years ago

1.1.781

4 years ago

1.1.780

4 years ago

1.1.779

4 years ago

1.1.778

4 years ago

1.1.777

4 years ago

1.1.776

4 years ago

1.1.775

4 years ago

1.1.774

4 years ago

1.1.773

4 years ago

1.1.772

4 years ago

1.1.771

4 years ago

1.1.770

4 years ago

1.1.769

4 years ago

1.1.768

4 years ago

1.1.767

4 years ago

1.1.766

4 years ago

1.1.765

4 years ago

1.1.764

4 years ago

1.1.763

4 years ago

1.1.762

4 years ago

1.1.761

4 years ago

1.1.760

4 years ago

1.1.759

4 years ago

1.1.758

4 years ago

1.1.757

4 years ago

1.1.756

4 years ago

1.1.755

4 years ago

1.1.754

4 years ago

1.1.753

4 years ago

1.1.752

4 years ago

1.1.751

4 years ago

1.1.750

4 years ago

1.1.749

4 years ago

1.1.748

4 years ago

1.1.747

4 years ago

1.1.746

4 years ago

1.1.745

4 years ago

1.1.744

4 years ago

1.1.743

4 years ago

1.1.742

4 years ago

1.1.741

4 years ago

1.1.740

4 years ago

1.1.739

4 years ago

1.1.738

4 years ago

1.1.737

4 years ago

1.1.736

4 years ago

1.1.735

4 years ago

1.1.734

4 years ago

1.1.733

4 years ago

1.1.732

4 years ago

1.1.731

4 years ago

1.1.730

4 years ago

1.1.729

4 years ago

1.1.728

4 years ago

1.1.727

4 years ago

1.1.726

4 years ago

1.1.725

4 years ago

1.1.724

4 years ago

1.1.723

4 years ago

1.1.722

4 years ago

1.1.721

4 years ago

1.1.720

4 years ago

1.1.719

4 years ago

1.1.718

4 years ago

1.1.717

4 years ago

1.1.716

4 years ago

1.1.715

4 years ago

1.1.714

4 years ago

1.1.713

4 years ago

1.1.712

4 years ago

1.1.711

4 years ago

1.1.710

4 years ago

1.1.709

4 years ago

1.1.708

4 years ago

1.1.707

4 years ago

1.1.706

4 years ago

1.1.705

4 years ago

1.1.704

4 years ago

1.1.703

4 years ago

1.1.702

4 years ago

1.1.701

4 years ago

1.1.700

4 years ago

1.1.699

4 years ago

1.1.698

4 years ago

1.1.697

4 years ago

1.1.696

4 years ago

1.1.695

4 years ago

1.1.694

4 years ago

1.1.693

4 years ago

1.1.692

4 years ago

1.1.691

4 years ago

1.1.690

4 years ago

1.1.689

4 years ago

1.1.688

4 years ago

1.1.687

4 years ago

1.1.686

4 years ago

1.1.685

4 years ago

1.1.684

4 years ago

1.1.683

4 years ago

1.1.682

4 years ago

1.1.681

4 years ago

1.1.680

4 years ago

1.1.679

4 years ago

1.1.678

4 years ago

1.1.677

4 years ago

1.1.676

4 years ago

1.1.675

5 years ago

1.1.674

5 years ago

1.1.673

5 years ago

1.1.672

5 years ago

1.1.671

5 years ago

1.1.670

5 years ago

1.1.669

5 years ago

1.1.668

5 years ago

1.1.667

5 years ago

1.1.666

5 years ago

1.1.665

5 years ago

1.1.664

5 years ago

1.1.663

5 years ago

1.1.662

5 years ago

1.1.661

5 years ago

1.1.660

5 years ago

1.1.659

5 years ago

1.1.658

5 years ago

1.1.657

5 years ago

1.1.656

5 years ago

1.1.655

5 years ago

1.1.654

5 years ago

1.1.653

5 years ago

1.1.652

5 years ago

1.1.651

5 years ago

1.1.650

5 years ago

1.1.649

5 years ago

1.1.648

5 years ago

1.1.647

5 years ago

1.1.646

5 years ago

1.1.645

5 years ago

1.1.644

5 years ago

1.1.643

5 years ago

1.1.642

5 years ago

1.1.641

5 years ago

1.1.640

5 years ago

1.1.639

5 years ago

1.1.638

5 years ago

1.1.637

5 years ago

1.1.636

5 years ago

1.1.635

5 years ago

1.1.634

5 years ago

1.1.633

5 years ago

1.1.632

5 years ago

1.1.631

5 years ago

1.1.630

5 years ago

1.1.629

5 years ago

1.1.628

5 years ago

1.1.627

5 years ago

1.1.626

5 years ago

1.1.625

5 years ago

1.1.624

5 years ago

1.1.623

5 years ago

1.1.622

5 years ago

1.1.621

5 years ago

1.1.620

5 years ago

1.1.619

5 years ago

1.1.618

5 years ago

1.1.617

5 years ago

1.1.616

5 years ago

1.1.615

5 years ago

1.1.614

5 years ago

1.1.613

5 years ago

1.1.612

5 years ago

1.1.611

5 years ago

1.1.610

5 years ago

1.1.609

5 years ago

1.1.608

5 years ago

1.1.607

5 years ago

1.1.606

5 years ago

1.1.605

5 years ago

1.1.604

5 years ago

1.1.603

5 years ago

1.1.602

5 years ago

1.1.601

5 years ago

1.1.600

5 years ago

1.1.599

5 years ago

1.1.598

5 years ago

1.1.597

5 years ago

1.1.596

5 years ago

1.1.595

5 years ago

1.1.594

5 years ago

1.1.593

5 years ago

1.1.592

5 years ago

1.1.591

5 years ago

1.1.590

5 years ago

1.1.589

5 years ago

1.1.588

5 years ago

1.1.587

5 years ago

1.1.586

5 years ago

1.1.585

5 years ago

1.1.584

5 years ago

1.1.583

5 years ago

1.1.582

5 years ago

1.1.581

5 years ago

1.1.580

5 years ago

1.1.579

5 years ago

1.1.578

5 years ago

1.1.577

5 years ago

1.1.576

5 years ago

1.1.575

5 years ago

1.1.574

5 years ago

1.1.573

5 years ago

1.1.572

5 years ago

1.1.571

5 years ago

1.1.570

5 years ago

1.1.569

5 years ago

1.1.568

5 years ago

1.1.567

5 years ago

1.1.566

5 years ago

1.1.565

5 years ago

1.1.564

5 years ago

1.1.563

5 years ago

1.1.562

5 years ago

1.1.561

5 years ago

1.1.560

5 years ago

1.1.559

5 years ago

1.1.558

5 years ago

1.1.557

5 years ago

1.1.556

5 years ago

1.1.555

5 years ago

1.1.554

5 years ago

1.1.553

5 years ago

1.1.552

5 years ago

1.1.551

5 years ago

1.1.550

5 years ago

1.1.549

5 years ago

1.1.548

5 years ago

1.1.547

5 years ago

1.1.546

5 years ago

1.1.545

5 years ago

1.1.544

5 years ago

1.1.543

5 years ago

1.1.542

5 years ago

1.1.541

5 years ago

1.1.540

5 years ago

1.1.539

5 years ago

1.1.538

5 years ago

1.1.537

5 years ago

1.1.536

5 years ago

1.1.535

5 years ago

1.1.534

5 years ago

1.1.533

5 years ago

1.1.532

5 years ago

1.1.531

5 years ago

1.1.530

5 years ago

1.1.529

5 years ago

1.1.528

5 years ago

1.1.527

5 years ago

1.1.526

5 years ago

1.1.525

5 years ago

1.1.524

5 years ago

1.1.523

5 years ago

1.1.522

5 years ago

1.1.521

5 years ago

1.1.520

5 years ago

1.1.519

5 years ago

1.1.518

5 years ago

1.1.517

5 years ago

1.1.516

5 years ago

1.1.515

5 years ago

1.1.514

5 years ago

1.1.513

5 years ago

1.1.512

5 years ago

1.1.511

5 years ago

1.1.510

5 years ago

1.1.509

5 years ago

1.1.508

5 years ago

1.1.507

5 years ago

1.1.506

5 years ago

1.1.505

5 years ago

1.1.504

5 years ago

1.1.503

5 years ago

1.1.502

5 years ago

1.1.501

5 years ago

1.1.500

5 years ago

1.1.499

5 years ago

1.1.498

5 years ago

1.1.497

5 years ago

1.1.496

5 years ago

1.1.495

5 years ago

1.1.494

5 years ago

1.1.493

5 years ago

1.1.492

5 years ago

1.1.491

5 years ago

1.1.490

5 years ago

1.1.489

5 years ago

1.1.488

5 years ago

1.1.487

5 years ago

1.1.486

5 years ago

1.1.485

5 years ago

1.1.484

5 years ago

1.1.483

5 years ago

1.1.482

5 years ago

1.1.481

5 years ago

1.1.480

5 years ago

1.1.479

5 years ago

1.1.478

5 years ago

1.1.477

5 years ago

1.1.476

5 years ago

1.1.475

5 years ago

1.1.474

5 years ago

1.1.473

6 years ago

1.1.472

6 years ago

1.1.471

6 years ago

1.1.470

6 years ago

1.1.469

6 years ago

1.1.468

6 years ago

1.1.467

6 years ago

1.1.466

6 years ago

1.1.465

6 years ago

1.1.464

6 years ago

1.1.463

6 years ago

1.1.462

6 years ago

1.1.461

6 years ago

1.1.460

6 years ago

1.1.459

6 years ago

1.1.458

6 years ago

1.1.457

6 years ago

1.1.456

6 years ago

1.1.455

6 years ago

1.1.454

6 years ago

1.1.453

6 years ago

1.1.452

6 years ago

1.1.451

6 years ago

1.1.450

6 years ago

1.1.449

6 years ago

1.1.448

6 years ago

1.1.447

6 years ago

1.1.446

6 years ago

1.1.445

6 years ago

1.1.444

6 years ago

1.1.443

6 years ago

1.1.442

6 years ago

1.1.441

6 years ago

1.1.440

6 years ago

1.1.0

7 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

2.0.0

8 years ago

0.3.6

8 years ago

0.3.5

8 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago