PageSourceSearch

https://webdriver.io/assets/js/41b97a1c.cc5ba106.js

js webdriver.io collected 2026-09-24 08:34:07 UTC 8,429 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[16053],{5037:e=>{e.exports=JSON.parse('{"permalink":"/blog/2023/07/31/driver-management","editUrl":"https://github.com/webdriverio/webdriverio/edit/main/website/blog/blog/2023-07-31-driver-management.md","source":"@site/blog/2023-07-31-driver-management.md","title":"Take a seat, WebdriverIO is driving for you!","description":"Since its inception, WebdriverIO has been a powerful tool for automating browsers through the WebDriver protocol. As many of you know, WebDriver is the web standard for automating real browsers, not just browser engines, allowing you to closely simulate the environment used by your users and customers.","date":"2023-07-31T00:00:00.000Z","tags":[],"readingTime":2.71,"hasTruncateMarker":true,"authors":[{"name":"Christian Bromann","url":"http://x.com/bromann","socials":{"x":"https://x.com/bromann","github":"https://github.com/christian-bromann"},"imageURL":"https://s.gravatar.com/avatar/d98b16d7c93d15865f34a225dd4b1254?s=80","key":"bromann","page":null}],"frontMatter":{"title":"Take a seat, WebdriverIO is driving for you!","authors":"bromann"},"unlisted":false,"prevItem":{"title":"Enhanced Test Automation with WebdriverIO","permalink":"/blog/2024/01/18/enhanced-test-automation-with-webdriverio"},"nextItem":{"title":"TypeScript Support for WebDriver Bidi","permalink":"/blog/2023/06/08/bidi-typescript-support"}}')},10916:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var i=o(5037),s=o(86106),t=o(22002);const n={title:"Take a seat, WebdriverIO is driving for you!",authors:"bromann"},a=void 0,d={authorsImageUrls:[void 0]},c=[{value:"Simplified Browser Automation Setup",id:"simplified-browser-automation-setup",level:2},{value:"Say Goodbye to Driver Services",id:"say-goodbye-to-driver-services",level:2},{value:"Specifying Browser Versions Made Easy",id:"specifying-browser-versions-made-easy",level:2},{value:"Effortless Testing on Microsoft Edge and Safari",id:"effortless-testing-on-microsoft-edge-and-safari",level:2},{value:"Customization and Flexibility",id:"customization-and-flexibility",level:2}];function l(e){const r={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:["Since its inception, WebdriverIO has been a powerful tool for automating browsers through the ",(0,s.jsx)(r.a,{href:"https://w3c.github.io/webdriver/",children:"WebDriver"})," protocol. As many of you know, WebDriver is the web standard for automating real browsers, not just browser engines, allowing you to closely simulate the environment used by your users and customers."]}),"\n",(0,s.jsx)(r.h2,{id:"simplified-browser-automation-setup",children:"Simplified Browser Automation Setup"}),"\n",(0,s.jsxs)(r.p,{children:["To automate a browser, you need to set up a browser driver that translates WebDriver-based commands and executes them within the browser. While WebdriverIO has provided useful services like ",(0,s.jsx)(r.a,{href:"https://github.com/webdriverio-community/wdio-chromedriver-service",children:(0,s.jsx)(r.code,{children:"wdio-chromedriver-service"})})," to simplify test environment setup, there have been challenges, particularly when new Chrome versions are released \ud83d\ude48."]}),"\n",(0,s.jsx)("div",{style:{width:"100%"},children:(0,s.jsx)("div",{style:{height:0,paddingBottom:"56.25%",position:"relative",width:"100%"},children:(0,s.jsx)("iframe",{allowfullscreen:"",frameBorder:"0",height:"100%",src:"https://giphy.com/embed/xuaqgqXadAyg6ZUXHF/video",style:{left:0,position:"absolute",top:0},width:"100%"})})}),"\n",(0,s.jsx)("br",{}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"But fear not!"})," With the release of WebdriverIO version v8.14.0, and onwards, all driver management hassles are now a thing of the past \ud83d\ude4c. The WebdriverIO team has been hard at work, taking over the maintenance of ",(0,s.jsx)(r.a,{href:"https://www.npmjs.com/package/geckodriver",children:(0,s.jsx)(r.code,{children:"geckodriver"})}),", ",(0,s.jsx)(r.a,{href:"https://www.npmjs.com/package/edgedriver",children:(0,s.jsx)(r.code,{children:"edgedriver"})})," and ",(0,s.jsx)(r.a,{href:"https://www.npmjs.com/package/safaridriver",children:(0,s.jsx)(r.code,{children:"safaridriver"})})," packages. This means smoother and more seamless browser automation experiences for you."]}),"\n",(0,s.jsx)(r.h2,{id:"say-goodbye-to-driver-services",children:"Say Goodbye to Driver Services"}),"\n",(0,s.jsxs)(r.p,{children:["One of the significant advantages of this update is that you can now get rid of any driver services you previously had to manage, such as ",(0,s.jsx)(r.code,{children:"wdio-chromedriver-service"}),", ",(0,s.jsx)(r.code,{children:"wdio-geckodriver-service"}),", ",(0,s.jsx)(r.code,{children:"wdio-edgedriver-service"}),", ",(0,s.jsx)(r.code,{children:"wdio-safaridriver-service"}),", and even ",(0,s.jsx)(r.code,{children:"@wdio/selenium-standalone-service"}),"."]}),"\n",(0,s.jsx)(r.h2,{id:"specifying-browser-versions-made-easy",children:"Specifying Browser Versions Made Easy"}),"\n",(0,s.jsx)(r.p,{children:"Testing Chrome locally is now more convenient than ever. You can define a browser channel, and WebdriverIO will take care of downloading the specified browser version for you. For example:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-js",children:"{\n    browserName: 'chrome',\n    browserVersion: '116.0.5793.0' // or 'stable', 'beta', 'dev' or 'canary'\n}\n"})}),"\n",(0,s.jsxs)(r.p,{children:["This has been made possible through Google's effort on ",(0,s.jsx)(r.a,{href:"https://developer.chrome.com/blog/chrome-for-testing/",children:"Chrome for Testing"})," which offers reliable downloads for browser automation. It's now built into WebdriverIO and guarantees consistent, reproducible results across repeated test runs."]}),"\n",(0,s.jsx)(r.h2,{id:"effortless-testing-on-microsoft-edge-and-safari",children:"Effortless Testing on Microsoft Edge and Safari"}),"\n",(0,s.jsxs)(r.p,{children:["WebdriverIO will now automatically detect the installed version of Microsoft Edge and download the appropriate Edgedriver for you. Similarly, testing on ",(0,s.jsx)(r.a,{href:"https://developer.apple.com/safari/technology-preview/",children:"Safari Technology Preview"})," is a breeze; just install it on your Mac machine and use ",(0,s.jsx)(r.code,{children:"Safari Technology Preview"})," as the browser name."]}),"\n",(0,s.jsx)(r.h2,{id:"customization-and-flexibility",children:"Customization and Flexibility"}),"\n",(0,s.jsxs)(r.p,{children:["For those who require custom driver options, fear not; WebdriverIO allows you to pass in driver options through custom WebdriverIO ",(0,s.jsx)(r.a,{href:"/docs/capabilities/#webdriverio-capabilities-to-manage-browser-driver-options",children:"capabilities"}),". If you have a custom grid, use a cloud service, or prefer to run your own driver, there's no need to worry since WebdriverIO will only start a driver when there are no other connection information settings like  ",(0,s.jsx)(r.a,{href:"/docs/configuration#hostname",children:(0,s.jsx)(r.code,{children:"hostname"})})," or ",(0,s.jsx)(r.a,{href:"/docs/configuration#port",children:(0,s.jsx)(r.code,{children:"port"})})," specified."]}),"\n",(0,s.jsxs)(r.p,{children:["In conclusion, WebdriverIO version ",(0,s.jsx)(r.code,{children:"v8.14.0"})," and beyond provides an incredibly smooth and seamless browser automation experience. With automated driver management, simplified browser version setup, and improved compatibility, your testing workflows are now more efficient and straightforward than ever before. Say goodbye to the bumpy automation rides and embrace the future of effortless browser testing with WebdriverIO! \ud83d\ude80"]})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},22002:(e,r,o)=>{o.d(r,{R:()=>n,x:()=>a});var i=o(7378);const s={},t=i.createContext(s);function n(e){const r=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:n(e.components),i.createElement(t.Provider,{value:r},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.