Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
@wdio/globals
Advanced tools
@wdio/globals is a package that provides global variables and functions for WebdriverIO, a popular automation test framework. It simplifies the setup and usage of WebdriverIO by offering a set of globally accessible utilities.
Global Browser Object
The global `browser` object allows you to interact with the browser instance directly. This includes navigating to URLs, interacting with elements, and more.
browser.url('https://example.com');
Global Expect Function
The global `expect` function is used for assertions in your tests. It allows you to make assertions about the state of the browser or elements within it.
expect(browser).toHaveTitle('Example Domain');
Global $ and $$ Functions
The global `$` and `$$` functions are shorthand for selecting single and multiple elements, respectively. They simplify the process of element selection in your tests.
const element = $('selector'); const elements = $$('selector');
Selenium WebDriver is a widely-used tool for browser automation. It provides a more low-level API compared to WebdriverIO, requiring more boilerplate code to achieve similar tasks.
Cypress is an end-to-end testing framework that offers a more developer-friendly experience with automatic waiting and a more intuitive API. However, it is limited to testing within the browser and does not support multiple browser instances.
Nightwatch.js is an end-to-end testing framework built on top of Selenium WebDriver. It provides a higher-level API compared to Selenium WebDriver but is not as feature-rich or user-friendly as WebdriverIO.
A helper utility for importing global variables directly
In your test files, WebdriverIO puts each of these methods and objects into the global environment. You don't have to import anything to use them. However, if you prefer explicit imports, you can do import { browser, $, $$, expect } from '@wdio/globals'
and set injectGlobals: false
in your WDIO configuration.
The following global objects are set if not configured otherwise:
browser
: WebdriverIO Browser objectdriver
: alias to browser (used when running mobile tests)multiremotebrowser
: alias to browser or driver but only set for Multiremote sessions$
: command to fetch an element (see more in API docs)$$
: command to fetch elements (see more in API docs)expect
: assertion framework for WebdriverIO (see API docs)Note: WebdriverIO has no control of used frameworks (e.g. Mocha or Jasmine) setting global variables when bootstrapping their environment.
To install the package, run:
npm i @wdio/globals --save-dev
You can implicitly import WebdriverIO primitives as following:
import { browser, $, $$, expect } from '@wdio/globals'
describe('my test', () => {
// ...
it('can do something', async () => {
// ...
})
// ...
})
If you have a TypeScript project you can propagate the WebdriverIO namespace by adding this package to the types
list, e.g.:
{
"compilerOptions": {
"types": ["node", "@wdio/globals/types"]
}
}
For more information on WebdriverIO Globals, check out the docs.
FAQs
A helper utility for importing global variables directly
The npm package @wdio/globals receives a total of 434,174 weekly downloads. As such, @wdio/globals popularity was classified as popular.
We found that @wdio/globals demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 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
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.