Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Jest environment for running Selenium WebDriver tests

License

NotificationsYou must be signed in to change notification settings

applitools/jest-environment-selenium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jest environment for running Selenium WebDriver tests

Installation

I like usingyarn for installations.

yarn add -D jest-environment-selenium

But npm works too!

npm install --save-dev jest-environment-selenium

Setup

Add this to thepackage.json:

"jest":{"testEnvironment":"jest-environment-selenium","setupTestFrameworkScriptFile":"jest-environment-selenium/dist/setup.js"}

By default tests will run against a localchromedriver, but you can easily specify something else.

"jest":{"testEnvironmentOptions":{"capabilities":{"browserName":"firefox"},"server":"http://localhost:4444/wd/hub","proxyType":"manual","proxyOptions":{"https":"http://127.0.0.1:3218"}}}

Jest Environment Selenium

Tests will be initialized with adriver according to the options (or a default chrome one)

test('load wikipedia',()=>{driver.get('https://en.wikipedia.org/wiki/Base64');});

cleanup

Kills the used session and starts a new one.

afterEach(async()=>(cleanup()));

Failing to callcleanup will result in non "idempotent" tests, which reuse the same WebDriver session (which can lead to difficult to debug errors in your tests).

Caveats

Since the tests areasync make sure you return aPromise so thatjest won't bail early

test('load wikipedia',()=>{driver.get('https://en.wikipedia.org/wiki/Base64');returndriver.getTitle().then(title=>{expect(title).toBeDefined();});});

Matchers

Custom WebDriver matchers designed for ease of use with jest

expect.resolves[.not].toBePresent()

toBePresent checks that an element appears on a page, it expects to receive aWebElementPromise

test('link appears in the page',()=>{driver.get('https://en.wikipedia.org/wiki/Base64');returnexpect(driver.findElements(By.linkText("binary-to-text encoding"))).resolves.toBePresent();});

expect.resolves[.not].toBeChecked()

toBeChecked checks that a checkbox is checked (many checks wow! 😱), it expects to receive aWebElementPromise

test('a checkbox is checked',()=>{driver.get('somewhere');returnexpect(driver.findElements(By.css('input[type="checkbox"]'))).resolves.toBeChecked();});

expect.resolves[.not].toBeEditable()

toBeEditable checks that an input is editable (enabled and not readonly), it expects to receive aWebElementPromise

test('an input is editable',()=>{driver.get('somewhere');returnexpect(driver.findElements(By.css('input'))).resolves.toBeEditable();});

expect.resolves[.not].toHaveValue(value)

toHaveValue checks that an input value is what you expect, it expects to receive aWebElementPromise

test('an input has the value',()=>{driver.get('somewhere');returnexpect(driver.findElements(By.css('input'))).resolves.toHaveValue('test');});

expect.resolves[.not].toHaveSelectedValue(value)

toHaveValue checks that a select value is what you expect (will fail on other inputs), it expects to receive aWebElementPromise

test('a select has the right value',()=>{driver.get('somewhere');returnexpect(driver.findElements(By.css('select'))).resolves.toHaveSelectedValue('test');});

expect.resolves[.not].toHaveText(value)

toHaveValue checks that an elementinnetText is what you expect, it expects to receive aWebElementPromise

test('the paragraph has the correct text',()=>{driver.get('somewhere');returnexpect(driver.findElements(By.css('p'))).resolves.toHaveText('some nice text, maybe lorem ipsum');});

About

Jest environment for running Selenium WebDriver tests

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors4

  •  
  •  
  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp