Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
derby-webdriverio
Advanced tools
Webdriver.io for Derby.js
npm i --save webdriverio derby-webdriverio
In your derby app index file:
# app/index.coffee
app = require('derby').createApp 'foobar', __filename
window.app = app if window? # app must be accessible from the client
app.use require('derby-webdriverio/renderReady')
Create wdio.conf.js
in project's root folder:
// wdio.conf.js
exports.config = require('derby-webdriverio')({
// Specify multiple browsers to run.
// If it's 1 then will be created a single 'remote' instance.
// If it's >=2 then 'multiremote' will be created; the whole group will be
// called with the specified name; and each browser in this group will
// have a singular form of that name + number, i.e. 'student0', 'student1', ...
// http://webdriver.io/guide/usage/multiremote.html
browsers: {
browser: 1,
prof: 1,
students: 10
},
// selenium settings to use for each browser specified above
desiredCapabilities: {
browserName: 'chrome'
},
// base url which will be used for .url() methods
baseUrl: 'http://localhost:3003',
// timeout to wait until test fails
waitforTimeout: 30000,
// path to save screenshots (by default it's /test/screenshots/, don't forget
// to add it to your .gitignore)
screenshotPath: __dirname + '/test/screenshots/',
// files with tests
specs: [
'./test/e2e/**/*.js',
'./test/e2e/**/*.coffee'
],
// files to ignore
exclude: [
'./test/e2e/**/_*.js',
'./test/e2e/**/_*.coffee'
]
})
To run your tests:
./node_modules/.bin/wdio
If you want to run it as npm test
you can add the following script to your package.json
:
"scripts": {
"test": "wdio",
},
.*AndWait()
These methods accept the same arguments as the original methods. They do the same action and wait for derby page to fully load after that.
.urlAndWait()
.clickAndWait()
.submitFormAndWait()
All racer get-
and set-
methods are available.
Couple of examples:
.modelGet()
browser
.modelGet '_session.userId'
.then (userId) ->
@urlAndWait '/profile/' + userId
.modelSet()
it 'check title', ->
newTitle = 'New Title'
prevTitle = yield browser.modelSet '_page.title', newTitle
browser.getTitle()
.then (title) ->
title.should.not.equal prevTitle
title.should.equal newTitle
.modelAdd
, .modelPop
, etc..historyPush(path)
Do app.history.push
on the client and wait for the page to fully load.
browser
.historyPush '/profile'
.getTitle()
.should.eventually.equal 'My Profile'
.historyRefresh()
Refresh the page using app.history.refresh
on the client.
X()
- XPath functionXPath helper function, provides better support for querying text nodes.
Available globally as X
X([selector], text)
Returns an XPath selector to find a node which holds text
.
Optionally you can specify a CSS3 selector to narrow the lookup.
browser
# Click on a `<button>` within `<form class='main'>` that has `Submit` text.
.click X 'form.main button', 'Submit'
A bunch of useful shorthand methods to test things.
All of them accept the arguments which will be passed to X()
function.
shouldExist()
browser
# Note that the arguments passed here are `X()` function arguments
.shouldExist 'form.main button', 'Submit'
.shouldExist 'Welcome to my Website'
shouldNotExist()
shouldBeVisible()
shouldNotBeVisible()
shouldExecute
Accepts the same arguments as .execute()
and checks that its return value
equals true
FAQs
Webdriver.io for Derby.js
The npm package derby-webdriverio receives a total of 12 weekly downloads. As such, derby-webdriverio popularity was classified as not popular.
We found that derby-webdriverio demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.