* New translations GettingStarted.md (Polish) * New translations GettingStarted.md (Tamil) * New translations GettingStarted.md (French) * New translations GettingStarted.md (Spanish) * New translations GettingStarted.md (German) * New translations GettingStarted.md (Russian) * New translations GettingStarted.md (Ukrainian) * New translations GettingStarted.md (Chinese Simplified) * New translations GettingStarted.md (Persian) * New translations GettingStarted.md (Hindi) * New translations Browser.md (Chinese Simplified) * New translations BoilerplateProjects.md (Chinese Simplified) * New translations Capabilities.md (Chinese Simplified) * New translations Configuration.md (Chinese Simplified) * New translations Protocols.md (Chinese Simplified) * New translations GettingStarted.md (Chinese Simplified) * New translations API.md (Chinese Simplified) * New translations Accessibility.md (Chinese Simplified) * New translations Assertion.md (Chinese Simplified) * New translations AutoWait.md (Chinese Simplified) * New translations Autocompletion.md (Chinese Simplified) * New translations AutomationProtocols.md (Chinese Simplified) * New translations BambooIntegration.md (Chinese Simplified) * New translations CloudServices.md (Chinese Simplified) * New translations ComponentTesting.md (Chinese Simplified) * New translations ConfigurationFile.md (Chinese Simplified) * New translations CustomCommands.md (Chinese Simplified) * New translations CustomReporter.md (Chinese Simplified) * New translations CustomServices.md (Chinese Simplified) * New translations Debugging.md (Chinese Simplified) * New translations Docker.md (Chinese Simplified) * New translations DriverBinaries.md (Chinese Simplified) * New translations Enterprise.md (Chinese Simplified) * New translations GithubActions.md (Chinese Simplified) * New translations JenkinsIntegration.md (Chinese Simplified) * New translations MocksAndSpies.md (Chinese Simplified) * New translations Multiremote.md (Chinese Simplified) * New translations OrganizingTestSuites.md (Chinese Simplified) * New translations PageObjects.md (Chinese Simplified) * New translations ProtractorMigration.md (Chinese Simplified) * New translations Record.md (Chinese Simplified) * New translations Retry.md (Chinese Simplified) * New translations Runner.md (Chinese Simplified) * New translations Selectors.md (Chinese Simplified) * New translations SetupTypes.md (Chinese Simplified) * New translations SyncAsyncMigration.md (Chinese Simplified) * New translations Testrunner.md (Chinese Simplified) * New translations Timeouts.md (Chinese Simplified) * New translations TypeScript.md (Chinese Simplified) * New translations WatchFiles.md (Chinese Simplified) * New translations WhyWebdriverIO.md (Chinese Simplified) * New translations Element.md (Chinese Simplified) * New translations Environment.md (Chinese Simplified) * New translations Globals.md (Chinese Simplified) * New translations Mock.md (Chinese Simplified) * New translations Modules.md (Chinese Simplified) * New translations Lit.md (Chinese Simplified) * New translations Preact.md (Chinese Simplified) * New translations React.md (Chinese Simplified) * New translations Solid.md (Chinese Simplified) * New translations Svelte.md (Chinese Simplified) * New translations Vue.md (Chinese Simplified) * New translations mocking.md (Chinese Simplified) * New translations repl.md (Chinese Simplified) * New translations v6Migration.md (Chinese Simplified) * New translations v7Migration.md (Chinese Simplified) * New translations Donate.md (Chinese Simplified) * New translations Materials.md (Chinese Simplified) * New translations OpenOfficeHours.md (Chinese Simplified) * New translations Support.md (Chinese Simplified) * New translations WebExtensionTesting.md (Chinese Simplified) * New translations TipsAndTricks.md (Chinese Simplified) * New translations Donate.md (Tamil) * New translations Donate.md (Tamil) * New translations Donate.md (Tamil) * New translations Materials.md (Tamil) * New translations OpenOfficeHours.md (Tamil) * New translations CreateLocalWorkerProcess.md (Tamil) * New translations HighLevelOverview.md (Tamil) * New translations TestExecution.md (Tamil) * New translations Support.md (Tamil) * New translations Team.md (Tamil) * New translations TestExecution.md (Tamil) * New translations WDIOCommands.md (Tamil) * New translations TipsAndTricks.md (Tamil) * New translations Appium.md (Tamil) * New translations code.json (Arabic) * New translations options.json (Arabic) * New translations current.json (Arabic) * New translations current.json (Arabic) * New translations footer.json (Arabic) * New translations navbar.json (Arabic) * New translations API.md (Arabic) * New translations Accessibility.md (Arabic) * New translations Assertion.md (Arabic) * New translations AutoWait.md (Arabic) * New translations Autocompletion.md (Arabic) * New translations AutomationProtocols.md (Arabic) * New translations Babel.md (Arabic) * New translations BambooIntegration.md (Arabic) * New translations BoilerplateProjects.md (Arabic) * New translations Capabilities.md (Arabic) * New translations CloudServices.md (Arabic) * New translations ComponentTesting.md (Arabic) * New translations Configuration.md (Arabic) * New translations ConfigurationFile.md (Arabic) * New translations CustomCommands.md (Arabic) * New translations CustomReporter.md (Arabic) * New translations CustomServices.md (Arabic) * New translations Debugging.md (Arabic) * New translations Docker.md (Arabic) * New translations DriverBinaries.md (Arabic) * New translations Enterprise.md (Arabic) * New translations Flowcharts.md (Arabic) * New translations Frameworks.md (Arabic) * New translations GettingStarted.md (Arabic) * New translations GithubActions.md (Arabic) * New translations JenkinsIntegration.md (Arabic) * New translations MocksAndSpies.md (Arabic) * New translations Multiremote.md (Arabic) * New translations OrganizingTestSuites.md (Arabic) * New translations PageObjects.md (Arabic) * New translations ProtractorMigration.md (Arabic) * New translations Proxy.md (Arabic) * New translations Record.md (Arabic) * New translations Retry.md (Arabic) * New translations Runner.md (Arabic) * New translations Selectors.md (Arabic) * New translations SetupTypes.md (Arabic) * New translations SyncAsyncMigration.md (Arabic) * New translations Testrunner.md (Arabic) * New translations Timeouts.md (Arabic) * New translations TypeScript.md (Arabic) * New translations WatchFiles.md (Arabic) * New translations WhyWebdriverIO.md (Arabic) * New translations Browser.md (Arabic) * New translations Element.md (Arabic) * New translations Environment.md (Arabic) * New translations Globals.md (Arabic) * New translations Mock.md (Arabic) * New translations Modules.md (Arabic) * New translations Protocols.md (Arabic) * New translations Lit.md (Arabic) * New translations Preact.md (Arabic) * New translations React.md (Arabic) * New translations Solid.md (Arabic) * New translations Svelte.md (Arabic) * New translations Vue.md (Arabic) * New translations coverage.md (Arabic) * New translations mocking.md (Arabic) * New translations CreateLocalWorkerProcess.md (Arabic) * New translations HighLevelOverview.md (Arabic) * New translations TestExecution.md (Arabic) * New translations WDIOCommands.md (Arabic) * New translations repl.md (Arabic) * New translations v6Migration.md (Arabic) * New translations v7Migration.md (Arabic) * New translations Donate.md (Arabic) * New translations Materials.md (Arabic) * New translations OpenOfficeHours.md (Arabic) * New translations Support.md (Arabic) * New translations Team.md (Arabic) * New translations WebExtensionTesting.md (Arabic) * New translations TipsAndTricks.md (Arabic) * New translations Appium.md (Arabic) * New translations Support.md (Polish) * New translations Browser.md (Polish) * New translations Support.md (Polish) * New translations Team.md (Polish) * New translations Globals.md (Tamil) * New translations Browser.md (Polish) * New translations coverage.md (Tamil) * New translations Browser.md (Polish) * New translations API.md (Tamil) * New translations API.md (Tamil) * New translations Browser.md (Tamil) * New translations Browser.md (Tamil) * New translations Browser.md (Tamil) * New translations Element.md (Tamil) * New translations Lit.md (Tamil) * New translations React.md (Tamil) * New translations React.md (Tamil) * New translations Solid.md (Tamil) * New translations Svelte.md (Tamil) * New translations Preact.md (Tamil) * New translations Solid.md (Tamil) * New translations Svelte.md (Tamil) * New translations Vue.md (Tamil) * New translations coverage.md (Tamil) * New translations Autocompletion.md (Tamil) * New translations Preact.md (Tamil) * New translations coverage.md (Tamil) * New translations mocking.md (Tamil) * New translations JenkinsIntegration.md (Tamil) * New translations Vue.md (Tamil) * New translations mocking.md (Tamil) * New translations TipsAndTricks.md (Tamil) * New translations JenkinsIntegration.md (Tamil) * New translations repl.md (Tamil) * New translations repl.md (Tamil) * New translations Configuration.md (Persian) * New translations Babel.md (Tamil) * New translations BambooIntegration.md (Tamil) * New translations repl.md (Tamil) * New translations Configuration.md (Persian) * New translations BambooIntegration.md (Tamil) * New translations BambooIntegration.md (Tamil) * New translations MocksAndSpies.md (Tamil) * New translations MocksAndSpies.md (Tamil) * New translations DriverBinaries.md (Tamil) * New translations Flowcharts.md (Tamil) * New translations MocksAndSpies.md (Tamil)
2.1 KiB
| id | title |
|---|---|
| lit | Lit |
Lit is a simple library for building fast, lightweight web components. Testing Lit web components with WebdriverIO is very easy thanks to WebdriverIOs shadow DOM selectors you can query in shadow roots nested elements with just one single command.
Setup
To setup WebdriverIO within your Lit project, follow the instructions in our component testing docs. For Lit you don't need a preset as Lit web components don't need to run through a compiler, they are pure web component enhancements.
Once set-up, you can start the tests by running:
npx wdio run ./wdio.conf.js
Writing Tests
Given you have the following Lit component:
import { LitElement, css, html } from 'lit'
import { customElement, property } from 'lit/decorators.js'
@customElement('simple-greeting')
export class SimpleGreeting extends LitElement {
@property()
name?: string = 'World'
// Render the UI as a function of component state
render() {
return html`<p>Hello, ${this.name}!</p>`
}
}
In order test the component you have to render it into the test page before the test starts and ensure it gets cleaned up afterwards:
import expect from 'expect'
import { waitFor } from '@testing-library/dom'
// import Lit component
import './components/Component.ts'
describe('Lit Component testing', () => {
let elem: HTMLElement
beforeEach(() => {
elem = document.createElement('simple-greeting')
})
it('should render component', async () => {
elem.setAttribute('name', 'WebdriverIO')
document.body.appendChild(elem)
await waitFor(() => {
expect(elem.shadowRoot.textContent).toBe('Hello, WebdriverIO!')
})
})
afterEach(() => {
elem.remove()
})
})
You can find a full example of a WebdriverIO component test suite for Lit in our example repository.