import React from 'react' import Link from '@docusaurus/Link' import Translate, { translate } from '@docusaurus/Translate' export const features = [{ icon: '🌎', title: translate({ id: 'features.realEnvironments', message: 'Test in Real Environments' }), description: ( WebdriverIO allows you to test in actual browser or mobile devices used by your users. ), }, { icon: '🔩', title: translate({ id: 'features.versatile', message: 'Versatile and Feature Rich' }), description: ( Use WebdriverIO for full e2e or unit and component testing in the browser. ), }, { icon: '💤', title: translate({ id: 'features.autoWait', message: 'Auto Wait' }), description: ( WebdriverIO automatically waits for elements to appear before interacting with them. ), }, { icon: '📒', title: translate({ id: 'features.standards', message: 'Based on Web Standards' }), description: ( WebDriver ), bidiLink: ( WebDriver Bidi ) }}> {'Cross browser support via automation through {webdriverLink} and {bidiLink}.'} ), }, { icon: '📱', title: translate({ id: 'features.mobileSupport', message: 'Native Mobile Support' }), description: ( Appium ) }}> {'Run WebdriverIO on real mobile devices, smart TVs or other IoT devices through {appiumLink}.'} ), }, { icon: '🫂', title: translate({ id: 'features.community', message: 'Committed Community' }), description: ( support channel ) }}> {'Running a {supportChannelLink} with over 8k members and a rich ecosystem of community maintained plugins.'} ), }] export const logos = [{ /** * Page 1 */ img: 'google.png', alt: 'Google', url: 'https://developers.google.com/blockly/' }, { img: 'netflix.png', alt: 'Netflix', url: 'https://netflix.com/' }, { img: 'microsoft.svg', alt: 'Microsoft', url: 'https://www.microsoft.com/' }, { img: 'mozilla.png', alt: 'Mozilla', url: 'https://www.mozilla.org/' }, { img: 'buoyant.png', alt: 'Buoyant', url: 'https://buoyant.io/' }, { img: 'sap.png', alt: 'SAP', url: 'https://www.sap.com/' }, { img: 'salesforce.png', alt: 'Salesforce', url: 'https://engineering.salesforce.com/' }, { img: 'hilton.png', alt: 'Hilton', url: 'https://www.hilton.com/' }, /** * Page 2 */ { img: 'schwab.png', alt: 'Charles Schwab', url: 'https://www.schwab.com/' }, { img: 'jwplayer.png', alt: 'JW Player', url: 'https://www.jwplayer.com/' }, { img: 'bbva.png', alt: 'BBVA', url: 'https://www.bbva.com/' }, { img: 'gopro.png', alt: 'GoPro', url: 'https://gopro.com/' }, { img: 'algolia.png', alt: 'Algolia', url: 'https://www.algolia.com/' }, /** * Page 3 */ { img: 'financialtimes.png', alt: 'Financial Times', url: 'https://www.ft.com/' }, { img: 'zendesk.png', alt: 'Zendesk', url: 'https://www.zendesk.com/' }, { img: '1und1.png', alt: '1&1', url: 'https://www.1und1.de/' }, { img: 'avira.png', alt: 'Avira', url: 'https://www.avira.com/' }, { img: 'deloitte.jpg', alt: 'Deloitte', url: 'https://deloitte.com' }, { img: 'rabobank.png', alt: 'Rabobank', url: 'https://www.rabobank.com/' }, /** * Page 4 */ { img: 'bedrock.jpg', alt: 'Bedrock Streaming', url: 'https://www.bedrockstreaming.com/' }] export const LHIntregrationExample = ` await browser.emulate('device', 'iPhone X') await browser.enablePerformanceAudits({ networkThrottling: 'Good 3G', cacheEnabled: true, formFactor: 'mobile' }) // open application under test await browser.url('https://localhost:3000') expect(await browser.getMetrics().firstMeaningfulPaint) .toBeBelow(2500) const pwaCheckResult = await browser.checkPWA() expect(pwaCheckResult.passed).toBe(true) ` export const SetupExample = ` $ npm init wdio@latest ./ ` export const ComponentTestingExample = ` import { $, expect } from '@wdio/globals' import { render } from '@testing-library/vue' import HelloWorld from '../../src/components/HelloWorld.vue' describe('Component Testing', () => { it('increments value on click', async () => { const { getByText } = render(HelloWorld) const btn = getByText('count is 0') // transform into WebdriverIO element const button = await $(btn) // interact with element like a real user await button.click() await button.click() await expect(button).toMatchInlineSnapshot( "count is 2" ) }) })`