<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: KRISHNA S</title>
    <description>The latest articles on DEV Community by KRISHNA S (@krishnapollu).</description>
    <link>https://dev.to/krishnapollu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1139695%2Fb13faebc-a872-469e-95cf-03a481616fce.jpeg</url>
      <title>DEV Community: KRISHNA S</title>
      <link>https://dev.to/krishnapollu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/krishnapollu"/>
    <language>en</language>
    <item>
      <title>A Playwright reporter that remembers your runs and briefs your coding assistant</title>
      <dc:creator>KRISHNA S</dc:creator>
      <pubDate>Mon, 05 Oct 2026 23:21:43 +0000</pubDate>
      <link>https://dev.to/krishnapollu/a-playwright-reporter-that-remembers-your-runs-and-briefs-your-coding-assistant-52ao</link>
      <guid>https://dev.to/krishnapollu/a-playwright-reporter-that-remembers-your-runs-and-briefs-your-coding-assistant-52ao</guid>
      <description>&lt;p&gt;A red test result starts an investigation. Which attempt failed? What did the assertion actually say? Was this test failing on earlier runs? Where is the evidence you would hand to a teammate or coding assistant?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Playwright Logbook&lt;/strong&gt; is an open-source reporter that keeps &lt;strong&gt;failure diagnostics, retries, run-to-run changes and history&lt;/strong&gt; in one local HTML report. Its CLI can also give a coding assistant a focused, reviewable packet of recorded evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try Logbook:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/playwright-logbook" rel="noopener noreferrer"&gt;📦 Reporter on npm&lt;/a&gt; · &lt;a href="https://marketplace.visualstudio.com/items?itemName=krishnapollu.playwright-logbook-vscode" rel="noopener noreferrer"&gt;🧩 VS Code extension&lt;/a&gt; · &lt;a href="https://github.com/krishnapollu/playwright-logbook" rel="noopener noreferrer"&gt;⭐ GitHub repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/0kwdvpxckgpuskw3qpiw.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjwh2p1r2sdywr1hdctex.png" alt="Logbook report for pw-test: run outcomes, changes, filters, and test results" width="800" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;code&gt;pw-test&lt;/code&gt; is a demo project. This saved run has 20 results across API and Chromium projects, including two failing API tests. These are sample diagnostics, not a production incident or a performance benchmark. Click a screenshot to inspect its original resolution. Screenshots come from saved demo runs and may differ between tabs.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Playwright's HTML report and Trace Viewer are useful. Logbook focuses on the next steps: bringing the exception, attempts, available artifacts, saved-run changes and a debug packet with source excerpts into one workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it in your Playwright project
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save-dev&lt;/span&gt; playwright-logbook
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// playwright.config.ts&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;defineConfig&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@playwright/test&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nf"&gt;defineConfig&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;reporter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;list&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="c1"&gt;// Opt-in: capture steps, output tails and eligible image previews.&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;playwright-logbook&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;captureDetails&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;use&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;screenshot&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;only-on-failure&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;trace&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;on-first-retry&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;captureDetails&lt;/code&gt; defaults to &lt;code&gt;false&lt;/code&gt;. The example opts in to extra diagnostics. &lt;code&gt;trace: 'on-first-retry'&lt;/code&gt; captures a trace only if a first retry occurs; it does not enable retries. Keep your existing retry policy, or use &lt;code&gt;--retries=1&lt;/code&gt; when trying this on a demo suite.&lt;/p&gt;

&lt;p&gt;Run &lt;code&gt;npx playwright test&lt;/code&gt;, then open &lt;strong&gt;&lt;code&gt;.logbook/report/index.html&lt;/code&gt;&lt;/strong&gt;. The single HTML file opens locally without a server. Keep &lt;code&gt;.logbook/runs/&lt;/code&gt; and &lt;code&gt;.logbook/index.jsonl&lt;/code&gt; to build history. The reporter requires Node.js 20+ and Playwright 1.42+.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give your coding assistant the recorded evidence
&lt;/h2&gt;

&lt;p&gt;A pasted error is only part of the story. For a quick handoff, open the test in the HTML detail panel, use &lt;strong&gt;Preview debug context&lt;/strong&gt;, review it for secrets, then &lt;strong&gt;Copy debug context&lt;/strong&gt; to share the recorded evidence with your coding assistant.&lt;/p&gt;

&lt;p&gt;For an assistant with terminal and file access to your project, the CLI offers a &lt;strong&gt;debug packet for one test in one run&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx playwright-logbook &lt;span class="nb"&gt;history&lt;/span&gt; &lt;span class="nt"&gt;--limit&lt;/span&gt; 10 &lt;span class="nt"&gt;--json&lt;/span&gt;
npx playwright-logbook summary &lt;span class="nt"&gt;--run&lt;/span&gt; latest &lt;span class="nt"&gt;--format&lt;/span&gt; json
npx playwright-logbook debug &lt;span class="nt"&gt;--run&lt;/span&gt; latest &lt;span class="nt"&gt;--test&lt;/span&gt; YOUR_TEST_ID &lt;span class="nt"&gt;--format&lt;/span&gt; json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Find the recorded &lt;code&gt;testId&lt;/code&gt; in &lt;code&gt;.logbook/runs/&amp;lt;run-id&amp;gt;.json&lt;/code&gt;; the summary gives aggregate counts, not a list of every failed test. The debug packet includes available attempt outcomes, errors, source excerpts, steps and output, attachment metadata, recent outcomes, evidence IDs and a rerun command. Ask for the same test ID from an earlier run to compare the two packets. There is no separate CLI &lt;code&gt;diff&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;Logbook does not call an AI provider or fix tests automatically. Missing evidence is called out rather than invented. Review packets and attachments before sharing: text redaction does not guarantee that every secret is removed, and it cannot remove secrets visible in screenshots.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/p0n02zxu3tfufgf7op3q.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fijafsc8g28klaking6ak.png" alt="Passed test details 1" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/irlsktd3i5jzzlm6df24.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foaca3p7b3j7r4emso8u6.png" alt="Passes test details 2" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Passed Chromium test opened in the Logbook detail panel with rerun command, debug context and steps&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Investigate the exact failure
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Tests&lt;/strong&gt; view filters by status, project and tag, and groups by file. Open a result for its recorded error, code frame and expandable stack trace. Switch between attempts to see what failed before a retry, with optional captured steps, output and eligible image previews when &lt;code&gt;captureDetails: true&lt;/code&gt; was enabled for that run.&lt;/p&gt;

&lt;p&gt;Attachments show what was retained. A trace can be opened with Playwright's Trace Viewer through a copied command; Logbook does not embed a trace viewer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/uqziiussmub6rabqaldy.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frdsjz0sa36ihuutjx36b.png" alt="Failed Test 1" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/aa1pct0elxor0hdn1kkx.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkl8c66xyfyvkfszryr6o.png" alt="Failed Test 2" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Failed test in the Logbook detail panel with error context, steps and option to switch between attempts.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Triage the run, then look back
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Failures&lt;/strong&gt; tab groups similar recorded errors. It also identifies new failures, fixed tests, tests still failing, new tests and removed tests relative to the previous saved run. These are triage clues, not a confirmed common cause.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/k7r572s6hcvxs4gvonat.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu3jp999drdvwj5kk7jc4.png" alt="Failures tab" width="800" height="632"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Logbook Failures tab grouping two failing API tests under one error message, with run-change buckets showing two still failing&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Trends&lt;/strong&gt; view and per-test recent-results strip add context from retained runs. A failure today may be new, recurring or a retry recovery; those lead to different questions. History only reflects executions you kept and cannot establish root cause.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/5onibj3dsi8un5afjem9.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrt76e76n579gwpjs4ky.png" alt="Run Trends" width="800" height="610"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Retained &lt;code&gt;pw-test&lt;/code&gt; runs give the trend its context.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Run&lt;/strong&gt; tab adds recorded environment details and an approximate worker timeline for unsharded runs when timing data supports it. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/hb6v11cesaq8yys9zvqh.jpg" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpmub357eehabvnalk386.jpg" alt="Logbook Run tab with machine, Playwright, shard details and approximate worker timeline for pw-test" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Recorded environment and shard details, with an approximate worker timeline.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Project&lt;/strong&gt; tab breaks results down by Playwright project and file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/ubcxjc6nxq9op6r3d2h2.jpg" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzngm9u1kzn4w1zfw2s64.jpg" alt="Logbook Project tab with pw-test API and Chromium summaries and results by test file" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;API and Chromium results, followed by the breakdown by test file.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bring the investigation into your editor
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/h8av0bsalw6vxq70ob85.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyx4r1pfgyip5f351vto3.png" alt="VSCode Extension overview" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Logbook sidebar and run overview in VS Code, showing saved runs and the cases list&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://marketplace.visualstudio.com/items?itemName=krishnapollu.playwright-logbook-vscode" rel="noopener noreferrer"&gt;VS Code companion&lt;/a&gt; browses those saved results beside your code: run overview, failure detail, history and recorded source. It also provides execution comparison in its UI. With the CLI, you ask your assistant to compare two debug packets. The reporter remains responsible for collection.&lt;/p&gt;

&lt;p&gt;You can also export a portable Logbook bundle from CI, review it and import it into local history. This is a manual workflow, with no automatic CI download. The &lt;a href="https://github.com/krishnapollu/playwright-logbook/blob/main/docs/RUN-BUNDLES.md" rel="noopener noreferrer"&gt;bundle guide&lt;/a&gt; covers project IDs, sharded runs, artifacts and validation.&lt;/p&gt;




&lt;p&gt;Try Logbook on a suite you already investigate. Which part would help most: clearer exceptions and attempts, run triage, history, or a better handoff to your coding assistant? Share your thoughts, feature ideas or experience in the comments, or &lt;a href="https://github.com/krishnapollu/playwright-logbook/issues" rel="noopener noreferrer"&gt;open an issue&lt;/a&gt;. If it helps your workflow, a &lt;a href="https://github.com/krishnapollu/playwright-logbook" rel="noopener noreferrer"&gt;⭐ on GitHub&lt;/a&gt; helps other Playwright users find it.&lt;/p&gt;

</description>
      <category>playwright</category>
      <category>testing</category>
      <category>opensource</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Exploring WebdriverIO</title>
      <dc:creator>KRISHNA S</dc:creator>
      <pubDate>Tue, 29 Aug 2023 02:45:45 +0000</pubDate>
      <link>https://dev.to/krishnapollu/exploring-webdriverio-25n</link>
      <guid>https://dev.to/krishnapollu/exploring-webdriverio-25n</guid>
      <description>&lt;p&gt;Hello QA's, &lt;/p&gt;

&lt;p&gt;I recently bumped into WebdriverIO during my search for a better UI automation tool. Being into Selenium+Java, I have always found it to be hectic building frameworks, implementing listeners / hooks and wrappers, writing custom reporters / loggers and what not. But this new NodeJS based tool ( in fact, almost all the new age tools including Cypress and Playwright ) has made things simpler; be it the setup or integration with third party tools. I wanted to share with you what I found catchy with this particular tool. The points below might be applicable to others as well but for now let's focus on WebdriverIO. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Setup&lt;/strong&gt; - All you need to have as pre requisite is a node installation and an IDE. The npm will do the rest for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuration&lt;/strong&gt; - The whole bulky framework is now reduced to a single &lt;strong&gt;config.js&lt;/strong&gt; file. You just command the WebdriverIO "Hey! Run the tests with chrome." Or "I want you to generate an allure report for my test". And that's it. WebdriverIO does it for you.
The reporters, logging, hooks, drivers, test framework; all these are mentioned in the conf.js file.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrate any kind of tests you wish to&lt;/strong&gt;; be it Web UI or Mobile App UI or even API/ webservices  calls. This is one of the features which made me pick WebdriverIO. I work on projects that has test scenarios integrated with Web + Mobile App + REST API. And most of the UI automation tools out there doesn't have this capability of integrating mobile app testing. WebdriverIO lets you achieve this by integrating Appium to your test suite. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run your tests anywhere&lt;/strong&gt; without touching your code. WebdriverIO executes your tests in local env as well as any cloud platforms ( saucelabs, browserstack etc. ). You just mention it in your config.js and leave the rest to WebdriverIO. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiremote&lt;/strong&gt; - a feature that helps you handle multiple browser / driver sessions within the same worker. You can use this for cross browser testing, a server client app testing or a web + mobile app integrated testing. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple test frameworks support&lt;/strong&gt; - mocha, jasmine and cucumber. I was able to maintain two different test suites within the same project - cucumber based suite for e2e tests and mocha based suite for data driven tests.&lt;/li&gt;
&lt;li&gt;Features like &lt;strong&gt;Isolated test contexts&lt;/strong&gt;, &lt;strong&gt;auto-waiting&lt;/strong&gt;, &lt;strong&gt;own assertion library&lt;/strong&gt;, &lt;strong&gt;component testing&lt;/strong&gt;. &lt;/li&gt;
&lt;li&gt;And a detailed &lt;strong&gt;documentation&lt;/strong&gt;. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But still I feel few things are missing in WebdriverIO which would have made my life easier. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better debug options &lt;/li&gt;
&lt;li&gt;Better ways to handle flaky tests &lt;/li&gt;
&lt;li&gt;A code generator for recording the tests &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is one sample project I have done. The WebdriverIO team was kind enough to list this among their boilerplate projects. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://webdriver.io/docs/boilerplates#krishnapolluwdio-cucumber-poc"&gt;WebdriverIO - Boilerplate Projects&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/krishnapollu/wdio-cucumber-poc"&gt;Github&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>testdev</category>
      <category>automation</category>
      <category>node</category>
    </item>
  </channel>
</rss>
