<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The Agile Way — Practical Automated E2E Testing: Selenium Training Workbook]]></title><description><![CDATA[Practical guided test automation exercises, a series of bite-sized web test automation training with Selenium WebDriver.  No previous knowledge and experience is required. ]]></description><link>https://agileway.substack.com/s/selenium-webdriver-training-workshop</link><image><url>https://substackcdn.com/image/fetch/$s_!67px!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd51bd79-faaa-49a9-84f8-2c45dadb9ace_600x600.png</url><title>The Agile Way — Practical Automated E2E Testing: Selenium Training Workbook</title><link>https://agileway.substack.com/s/selenium-webdriver-training-workshop</link></image><generator>Substack</generator><lastBuildDate>Fri, 01 May 2026 21:28:05 GMT</lastBuildDate><atom:link href="https://agileway.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Zhimin Zhan]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[agileway@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[agileway@substack.com]]></itunes:email><itunes:name><![CDATA[Zhimin Zhan]]></itunes:name></itunes:owner><itunes:author><![CDATA[Zhimin Zhan]]></itunes:author><googleplay:owner><![CDATA[agileway@substack.com]]></googleplay:owner><googleplay:email><![CDATA[agileway@substack.com]]></googleplay:email><googleplay:author><![CDATA[Zhimin Zhan]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[#47: Print An Invoice (File Download)]]></title><description><![CDATA[Test File Download and Verify in Selenium WebDriver]]></description><link>https://agileway.substack.com/p/47-print-an-invoice-file-download</link><guid isPermaLink="false">https://agileway.substack.com/p/47-print-an-invoice-file-download</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sat, 05 Oct 2024 22:42:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ENQW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>Learning Objectives</strong></h1><ul><li><p>Design reliable automated tests that are user aware.</p></li><li><p>Customize the Chrome browser to save downloaded files into a specified folder</p></li><li><p>Verify a File Exists</p></li><li><p>Awareness of execution side effects: the file already exists</p></li><li><p>Review: <code>"#{variable}/..."</code></p></li></ul><h1><strong>Test Case #47</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ENQW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ENQW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png 424w, https://substackcdn.com/image/fetch/$s_!ENQW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png 848w, https://substackcdn.com/image/fetch/$s_!ENQW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png 1272w, https://substackcdn.com/image/fetch/$s_!ENQW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ENQW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png" width="1400" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ENQW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png 424w, https://substackcdn.com/image/fetch/$s_!ENQW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png 848w, https://substackcdn.com/image/fetch/$s_!ENQW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png 1272w, https://substackcdn.com/image/fetch/$s_!ENQW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60a1249b-bf6e-4eb0-8d1d-e7830fd75d43_1400x832.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Test design</strong></h1><ul><li><p>Login (business): <code>physio@biz.com</code> (password: <code>test01</code> )</p></li><li><p>Create an invoice (See <a href="https://medium.com/@courtneyzhan/selenium-workbook-46-create-client-invoice-inline-edit-06af1acde14a">Exercise #46</a>)</p></li><li><p>Click the &#8220;Print&#8221; link, wait up to 5 seconds, and then check the PDF file is generated.</p></li></ul><p>Obviously, the focus of this exercise is to <strong>check the downloaded file</strong>. It appears very simple during manual testing. However, in test automation, we need to consider the following:</p><ol><li><p>How to verify a file exists?<br><em>This is easy: use code.</em></p></li><li><p>To be able to do the above step, two pieces of information are required:<br>- the file name, in this case, <code>invoice_C000002.pdf</code><br>- the path of the Chrome download folder. This will depend on who you logged in and on which platform. For example, <code>/Users/courtney/downloads</code> is mine <em>(on macOS</em>).</p></li><li><p>The hardcoded folder path can be problematic in a software team where all team members utilize the automated tests. Ideally, we would like the path of the Chrome download folder to be static.</p></li><li><p>We can set the download folder path when starting a Chrome browser in Selenium scripts.</p></li><li><p>The file might already exist before the test execution.<br>After running the test once, the file would be created. So on the second runu, depending on the operating system, the behaviour will be different. For example, on macOS, a suffix <code>(1)</code> <em>(image below) </em>will be added.<br>How shall we solve it? By deleting the file in the test script before clicking the &#8216;Print&#8221; button.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NSEG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NSEG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png 424w, https://substackcdn.com/image/fetch/$s_!NSEG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png 848w, https://substackcdn.com/image/fetch/$s_!NSEG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png 1272w, https://substackcdn.com/image/fetch/$s_!NSEG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NSEG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png" width="1400" height="134" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:134,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!NSEG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png 424w, https://substackcdn.com/image/fetch/$s_!NSEG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png 848w, https://substackcdn.com/image/fetch/$s_!NSEG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png 1272w, https://substackcdn.com/image/fetch/$s_!NSEG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cc3064d-40cb-45d8-81fd-f7812c5e7ff0_1400x134.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><h1><strong>Tasks</strong></h1><p>I suggest doing this exercise step by step. Check the downloaded file first, such as <code>/Users/ME/invoice_C000002.pdf</code>. If this part is working, add the dynamic part.</p><h2><strong>Task 1. Verify a file exists</strong></h2>
      <p>
          <a href="https://agileway.substack.com/p/47-print-an-invoice-file-download">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#46: Create Client Invoice (Inline-Edit)]]></title><description><![CDATA[Fee Calculation; Inline-Edit Testing]]></description><link>https://agileway.substack.com/p/selenium-workbook-46-create-client</link><guid isPermaLink="false">https://agileway.substack.com/p/selenium-workbook-46-create-client</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sun, 22 Sep 2024 22:23:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9NGO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>Test Case #46</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9NGO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9NGO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png 424w, https://substackcdn.com/image/fetch/$s_!9NGO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png 848w, https://substackcdn.com/image/fetch/$s_!9NGO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png 1272w, https://substackcdn.com/image/fetch/$s_!9NGO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9NGO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png" width="1400" height="767" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d015953-7345-4989-b646-ceed163a7839_1400x767.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:767,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!9NGO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png 424w, https://substackcdn.com/image/fetch/$s_!9NGO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png 848w, https://substackcdn.com/image/fetch/$s_!9NGO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png 1272w, https://substackcdn.com/image/fetch/$s_!9NGO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d015953-7345-4989-b646-ceed163a7839_1400x767.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>Test inline editing</p></li><li><p>Review: live search <em>(search as typing)</em></p></li><li><p>Review: clear a text field</p></li><li><p>Review: send special keys, e.g. <code>Enter</code></p></li><li><p>Review: get yesterday&#8217;s date in a formatted string (dynamic date)</p></li></ul><h1><strong>Test Design</strong></h1><ul><li><p>Select any client (clicks <code>Clients</code> nav on the left to find a client, such as &#8216;Bruce Lee&#8217;)</p></li><li><p>On the &#8220;Determine Fee&#8221; modal, type a character such as <code>s</code> to get a list of matching services. Select one billing item to add. Then click the &#8216;Create Invoice&#8217; button.</p></li><li><p>On the invoice page, click the invoice date <em>(dot underline) </em>to edit it<br>(this is known as &#8220;inline-editing&#8221;)</p></li></ul><h2><strong>Test data</strong></h2><ul><li><p>Site URL: https://whenwise.agileway.net</p></li><li><p>Login (business): <code>physio@biz.com</code> (password: <code>test01</code> )</p></li></ul><h1><strong>Tasks</strong></h1><p>This test case might appear a little complex, but it actually is not, as it is quite easy to understand and follow.</p><h1><strong>Task 1. (Review) Select billing items on the Invoice Creation</strong></h1><p>This is a common feature in eBusiness-type apps.</p><p>You should have all the knowledge to work on it. Just do the minimum to get an invoice created. (we will do a more complex billing item management in the next exercises)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1PJQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1PJQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png 424w, https://substackcdn.com/image/fetch/$s_!1PJQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png 848w, https://substackcdn.com/image/fetch/$s_!1PJQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png 1272w, https://substackcdn.com/image/fetch/$s_!1PJQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1PJQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png" width="1400" height="924" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:924,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!1PJQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png 424w, https://substackcdn.com/image/fetch/$s_!1PJQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png 848w, https://substackcdn.com/image/fetch/$s_!1PJQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png 1272w, https://substackcdn.com/image/fetch/$s_!1PJQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4f8717a-28c0-4c52-b6db-3d70d395dcd1_1400x924.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Task 2. Inline Editing</strong></h1><p>&#8220;Inline editing&#8221; means that users can click the text to edit it straightway (no need to be redirected to another web page).</p><p>The invoice date on the WhenWise Invoice page before clicking:</p>
      <p>
          <a href="https://agileway.substack.com/p/selenium-workbook-46-create-client">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#45: Shopping Cart]]></title><description><![CDATA[Testing a common eBusiness feature]]></description><link>https://agileway.substack.com/p/45-shopping-cart</link><guid isPermaLink="false">https://agileway.substack.com/p/45-shopping-cart</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sat, 07 Sep 2024 21:21:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wDif!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>Learning Objectives</strong></h1><ul><li><p><code>contains</code> in XPath expressions<br><em>(a bit like a partial check-in XPath)</em></p></li><li><p>Tip: Use simple locators whenever possible</p></li><li><p>Review: refresh the page</p></li><li><p>Tip: Be aware of elements with the same ID</p></li></ul><h1><strong>Test Case 45</strong></h1><p>Continue from #34: adding non-time-based service.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wDif!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wDif!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png 424w, https://substackcdn.com/image/fetch/$s_!wDif!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png 848w, https://substackcdn.com/image/fetch/$s_!wDif!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png 1272w, https://substackcdn.com/image/fetch/$s_!wDif!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wDif!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png" width="1400" height="803" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/50053c37-e122-4525-9e00-f27262cf339c_1400x803.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:803,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!wDif!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png 424w, https://substackcdn.com/image/fetch/$s_!wDif!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png 848w, https://substackcdn.com/image/fetch/$s_!wDif!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png 1272w, https://substackcdn.com/image/fetch/$s_!wDif!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50053c37-e122-4525-9e00-f27262cf339c_1400x803.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Test Design</strong></h1><ul><li><p>Log in as a business</p></li><li><p>Create several service (i.e. billing) items</p></li><li><p>Log out</p></li><li><p>Log in as a client</p></li><li><p>Visit the business&#8217; store URL <code>/biz/wise-pool/store</code></p></li><li><p>Select a billing item and quantity (multiple)</p></li><li><p>Verify the total amount in the shopping cart</p></li><li><p>Refresh the page</p></li><li><p>Click the cart icon and verify the total amount<br><em>This is to verify the session, don&#8217;t forget to test this for session-related test cases</em></p></li></ul><h2><strong>Test Data (Login) :</strong></h2><p>Site URL: https://whenwise.agileway.net<br>Login (Business): <code>pool@biz.com<br></code>Login (Customer): <code>james@client.com<br></code>Password: <code>test01</code></p><h1><strong>Tasks</strong></h1><h2><strong>Task 1. Select Quantity for a Billing Item (dropdown)</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fCWO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fface6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fCWO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fface6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png 424w, https://substackcdn.com/image/fetch/$s_!fCWO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fface6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png 848w, https://substackcdn.com/image/fetch/$s_!fCWO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fface6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png 1272w, https://substackcdn.com/image/fetch/$s_!fCWO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fface6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fCWO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fface6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png" width="1400" height="612" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/face6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:612,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!fCWO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fface6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png 424w, https://substackcdn.com/image/fetch/$s_!fCWO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fface6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png 848w, https://substackcdn.com/image/fetch/$s_!fCWO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fface6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png 1272w, https://substackcdn.com/image/fetch/$s_!fCWO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fface6fc1-eb0a-4ea3-8746-416176078d14_1400x612.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">WhenWise Shopping Cart screen</figcaption></figure></div><p>The quantity selection is a drop down box.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PLed!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PLed!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png 424w, https://substackcdn.com/image/fetch/$s_!PLed!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png 848w, https://substackcdn.com/image/fetch/$s_!PLed!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png 1272w, https://substackcdn.com/image/fetch/$s_!PLed!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PLed!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png" width="1400" height="178" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:178,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!PLed!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png 424w, https://substackcdn.com/image/fetch/$s_!PLed!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png 848w, https://substackcdn.com/image/fetch/$s_!PLed!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png 1272w, https://substackcdn.com/image/fetch/$s_!PLed!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cdc42a6-2644-4129-8e0c-bccc4a7468ed_1400x178.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Even though the ID locator is recommended in the general case, experienced test engineers would NOT use ID locator this time, like below.</p><pre><code>driver.find_element(:id, "quantity-33")</code></pre><p>Why? The id&#8217;s <code>33</code> might change in the next release.</p><p>One way to use XPath locator. The statements below select quantity &#8220;2&#8221; for the first billing item.</p>
      <p>
          <a href="https://agileway.substack.com/p/45-shopping-cart">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#44: Moving an Appointment]]></title><description><![CDATA[Use Selenium WebDriver&#8217;s Drag and Drop Advanced User Interactions API to move calendar appointments.]]></description><link>https://agileway.substack.com/p/44-moving-an-appointment</link><guid isPermaLink="false">https://agileway.substack.com/p/44-moving-an-appointment</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Wed, 26 Jun 2024 10:16:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KJTN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>Learning Objectives</strong></h1><ul><li><p><strong>Drive Full Calendar</strong><br>This continues our tour of FullCalendar a popular calendar library that started in Exercise 41.</p></li><li><p><strong>Review of Advanced Interactions and learning a new interaction &#8212; Mouse Drag and Drop.</strong></p></li><li><p><strong>Review XPath</strong> and using XPath parent nodes to find specific elements.</p></li></ul><h1><strong>Test Case 44</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KJTN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KJTN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png 424w, https://substackcdn.com/image/fetch/$s_!KJTN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png 848w, https://substackcdn.com/image/fetch/$s_!KJTN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png 1272w, https://substackcdn.com/image/fetch/$s_!KJTN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KJTN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png" width="1400" height="787" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:787,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!KJTN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png 424w, https://substackcdn.com/image/fetch/$s_!KJTN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png 848w, https://substackcdn.com/image/fetch/$s_!KJTN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png 1272w, https://substackcdn.com/image/fetch/$s_!KJTN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6546a00-be37-4428-98bb-fb9c0f77e2cc_1400x787.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Test Design</strong></h1><ul><li><p>Create an appointment for a resource, (e.g. Jet Li).</p></li><li><p>Using the mouse, drag the appointment and drop it into another resource&#8217;s calendar on the same page (e.g. Donny Yen).</p></li><li><p>Confirm the booking should be moved (modal pop-up).</p></li><li><p>Confirm that the booking was successfully moved.</p></li></ul><h2><strong>Test Data (Login) :</strong></h2><p>Site URL: https://whenwise.agileway.net<br>Login: <code>yoga@biz.com<br></code>Password: <code>test01</code></p><h1><strong>Tasks</strong></h1><h2><strong>Task 1. Create an appointment booking</strong></h2><p>This is the same as <a href="https://courtneyzhan.medium.com/selenium-workbook-41-create-an-appointment-via-a-calendar-d77c4b4a839b">Exercise 41</a>, you can copy that same script here if you wish.</p><pre><code>login("yoga@biz.com", "test01")
visit("/calendar")
cells = driver.find_elements(:xpath, "//tr/td[@class='fc-widget-content']")
cells[8].click
try_for(2) { driver.find_element(:name, "event[title]").send_keys("BuildWise is even Cooler") }
driver.find_element(:id, "create_calendar_appointment_button").click
try_for(2) { expect(page_text).to include("BuildWise is even Cooler") }</code></pre>
      <p>
          <a href="https://agileway.substack.com/p/44-moving-an-appointment">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#43: Business Create Booking in Calendar]]></title><description><![CDATA[Select a single time slot to create an appointment on FullCalendar.]]></description><link>https://agileway.substack.com/p/43-business-create-booking-in-calendar</link><guid isPermaLink="false">https://agileway.substack.com/p/43-business-create-booking-in-calendar</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sun, 16 Jun 2024 20:26:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1KqQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>Learning Objectives</strong></h1><ul><li><p><strong>Narrow down as you type</strong></p></li><li><p><strong>Review<br></strong>- Click transformed checkboxes<br>- Select an option in a standard select list<br>- Select an option in a transformed select list</p></li><li><p>Find an element as an assertion</p></li></ul><h1><strong>Test Case #43</strong></h1><p>A booking in WhenWise means an appointment with a client and a resource<em> (such as a Piano Teacher).</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1KqQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1KqQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png 424w, https://substackcdn.com/image/fetch/$s_!1KqQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png 848w, https://substackcdn.com/image/fetch/$s_!1KqQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png 1272w, https://substackcdn.com/image/fetch/$s_!1KqQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1KqQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png" width="1400" height="750" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:750,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!1KqQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png 424w, https://substackcdn.com/image/fetch/$s_!1KqQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png 848w, https://substackcdn.com/image/fetch/$s_!1KqQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png 1272w, https://substackcdn.com/image/fetch/$s_!1KqQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe509b669-801a-4b7b-bf1a-1386c2af01ce_1400x750.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Test data:</strong></h1><ul><li><p>SiteURL: </p></li></ul><p>https://whenwise.agileway.net</p><ul><li><p>User login: &#8220;physio@biz.com&#8221;, password: &#8220;test01&#8221;</p></li></ul><h1><strong>Tasks</strong></h1><h2><strong>1. Select the Branch and Professional dropdown</strong></h2><p>Both are standard select lists.</p><pre><code>&lt;!-- Branch Drop Down --&gt;
&lt;select class="browser-default" onchange="change_available_billing_items();" name="event[branch_id]" id="event_branch_id"&gt;
  &lt;option value=""&gt; - All branches - &lt;/option&gt;
  &lt;option value="4"&gt;Newmarket&lt;/option&gt;
  &lt;option value="5"&gt;Sydney&lt;/option&gt;
  &lt;option value="6"&gt;Sunnybank&lt;/option&gt;
&lt;/select&gt;

&lt;!-- Professional Drop Down --&gt;
&lt;select class="browser-default" name="event[resource_id]" id="event_resource_id"&gt;
  &lt;option value=""&gt;-&lt;/option&gt;
  &lt;option value="1"&gt;Mike Zasky&lt;/option&gt;
  &lt;option selected="selected" value="2"&gt;John Sully&lt;/option&gt;
  &lt;option value="14"&gt;Randall Boggs&lt;/option&gt;
&lt;/select&gt;</code></pre><p>Tip: Use the <code>dsot</code> snippet in TestWise for drop-down selectors.</p>
      <p>
          <a href="https://agileway.substack.com/p/43-business-create-booking-in-calendar">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#42: Create a Multi-Slot Appointment in Calendar (Selenium WebDriver’s Advanced User Interactions)]]></title><description><![CDATA[Select multiple time slots to create an appointment on FullCalendar using Selenium WebDriver&#8217;s Advanced User Interactions API.]]></description><link>https://agileway.substack.com/p/42-create-a-multi-slot-appointment</link><guid isPermaLink="false">https://agileway.substack.com/p/42-create-a-multi-slot-appointment</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sat, 08 Jun 2024 18:46:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ve_k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>Test Case #42</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ve_k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ve_k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png 424w, https://substackcdn.com/image/fetch/$s_!Ve_k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png 848w, https://substackcdn.com/image/fetch/$s_!Ve_k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png 1272w, https://substackcdn.com/image/fetch/$s_!Ve_k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ve_k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png" width="1400" height="715" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1356400-bb39-41c4-b962-61a62ab26085_1400x715.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:715,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Ve_k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png 424w, https://substackcdn.com/image/fetch/$s_!Ve_k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png 848w, https://substackcdn.com/image/fetch/$s_!Ve_k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png 1272w, https://substackcdn.com/image/fetch/$s_!Ve_k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1356400-bb39-41c4-b962-61a62ab26085_1400x715.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is an extension of <a href="https://agileway.substack.com/p/41-create-an-appointment-via-a-calendar">Exercise #41</a>.</p><h1><strong>Test data:</strong></h1><ul><li><p>SiteURL: https://whenwise.agileway.net</p></li><li><p>User login: &#8220;<code>yoga@biz.com</code>&#8221;, password: &#8220;<code>test01</code>&#8221;</p></li></ul><h1><strong>Purpose</strong></h1><ul><li><p><strong>Selenium WebDriver&#8217;s Advanced User Interactions &#8212; Mouse</strong></p></li><li><p><strong>Drive FullCalendar</strong><br><em>WhenWise uses <a href="https://fullcalendar.io/">FullCalendar</a>, a popular calendar view for showing appointments/bookings.</em></p></li><li><p><strong>List concepts in programming</strong></p></li></ul><h1><strong>Tasks</strong></h1><h2><strong>Select a multi-time-slot on FullCalendar</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gtzb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gtzb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png 424w, https://substackcdn.com/image/fetch/$s_!Gtzb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png 848w, https://substackcdn.com/image/fetch/$s_!Gtzb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png 1272w, https://substackcdn.com/image/fetch/$s_!Gtzb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gtzb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png" width="1400" height="283" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:283,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Gtzb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png 424w, https://substackcdn.com/image/fetch/$s_!Gtzb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png 848w, https://substackcdn.com/image/fetch/$s_!Gtzb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png 1272w, https://substackcdn.com/image/fetch/$s_!Gtzb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86dbd568-8696-40ba-99b6-323f10f273a9_1400x283.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>As always, when working on a new test case, an automated tester needs to perform it manually first.</p><ol><li><p>Click on a time slot and hold</p></li><li><p>Move down a few slots (while holding)</p></li><li><p>Release the mouse</p></li></ol><p>We can replicate the exact steps in Selenium using its Advanced User Interactions (<em>don&#8217;t worry about the name, just need to remember its syntax, quite simple too</em>)</p><h2><strong>Test Design</strong></h2>
      <p>
          <a href="https://agileway.substack.com/p/42-create-a-multi-slot-appointment">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#41: Create an Appointment via a Calendar]]></title><description><![CDATA[Select a single time slot to create an appointment on FullCalendar.]]></description><link>https://agileway.substack.com/p/41-create-an-appointment-via-a-calendar</link><guid isPermaLink="false">https://agileway.substack.com/p/41-create-an-appointment-via-a-calendar</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Mon, 03 Jun 2024 07:24:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!epdf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>Learning Objectives</strong></h1><ul><li><p><strong>Drive FullCalendar</strong><br><em>WhenWise uses <a href="https://fullcalendar.io/">FullCalendar</a>, a popular library for showing appointments/bookings.</em></p></li><li><p><strong>Review of </strong><code>driver.find_elements</code><strong> and List concept</strong><br>there are two main statements in Selenium, <code>driver.find_element</code> and <code>driver.find_elements</code> . It is OK to treat them as one as the syntax followed is the same. The only difference is the returned result:<br>- <code>find_element</code> returns the first matching element<br>- <code>find_elements</code> returns an array (aka. list) of matching elements</p></li></ul><h1><strong>Test Case #41</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!epdf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!epdf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png 424w, https://substackcdn.com/image/fetch/$s_!epdf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png 848w, https://substackcdn.com/image/fetch/$s_!epdf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png 1272w, https://substackcdn.com/image/fetch/$s_!epdf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!epdf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png" width="1400" height="651" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:651,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!epdf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png 424w, https://substackcdn.com/image/fetch/$s_!epdf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png 848w, https://substackcdn.com/image/fetch/$s_!epdf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png 1272w, https://substackcdn.com/image/fetch/$s_!epdf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5f82b7-a3ae-4089-bc83-0c3efb68a1ec_1400x651.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Test data:</strong></h1><ul><li><p>SiteURL: https://whenwise.agileway.net</p></li><li><p>User login: &#8220;yoga@biz.com&#8221;, password: &#8220;test01&#8221;</p></li></ul><h1><strong>Tasks</strong></h1><h2><strong>Click a time slot on FullCalendar</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hCC4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hCC4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png 424w, https://substackcdn.com/image/fetch/$s_!hCC4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png 848w, https://substackcdn.com/image/fetch/$s_!hCC4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png 1272w, https://substackcdn.com/image/fetch/$s_!hCC4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hCC4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png" width="1400" height="515" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:515,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!hCC4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png 424w, https://substackcdn.com/image/fetch/$s_!hCC4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png 848w, https://substackcdn.com/image/fetch/$s_!hCC4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png 1272w, https://substackcdn.com/image/fetch/$s_!hCC4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f73eb74-e16f-4b39-806a-aab70e83c2f0_1400x515.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A wrong attempt by an attendee during the training was to click the 10am row&#8217;s cell:</p><pre><code>driver.find_element(:xpath, "//tr/td[@class='fc-widget-content']/span[text()='10am']").click</code></pre>
      <p>
          <a href="https://agileway.substack.com/p/41-create-an-appointment-via-a-calendar">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#40: Responsive Web Testing]]></title><description><![CDATA[Test a responsive website and verify on different devices]]></description><link>https://agileway.substack.com/p/40-responsive-web-testing</link><guid isPermaLink="false">https://agileway.substack.com/p/40-responsive-web-testing</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sun, 26 May 2024 07:10:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HikC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HikC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HikC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png 424w, https://substackcdn.com/image/fetch/$s_!HikC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png 848w, https://substackcdn.com/image/fetch/$s_!HikC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png 1272w, https://substackcdn.com/image/fetch/$s_!HikC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HikC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png" width="1400" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!HikC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png 424w, https://substackcdn.com/image/fetch/$s_!HikC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png 848w, https://substackcdn.com/image/fetch/$s_!HikC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png 1272w, https://substackcdn.com/image/fetch/$s_!HikC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bbeed62-27a8-4930-bdda-39599b27955d_1400x794.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>Responsive Testing</p></li></ul><h1><strong>Test data:</strong></h1><ul><li><p>WhenWise Login Page: <a href="https://whenwise.agileway.net/sign-in">https://whenwise.agileway.net/sign-in</a></p></li><li><p>User login details: <code>yoga@biz.com</code>/ <code>test01</code></p></li></ul><h1><strong>Knowledge Point: Responsive Web Design</strong></h1><p>Nowadays, we visit websites from multiple devices: computers, tablets and smartphones, with different screen sizes. This will require the developers to design a web page that works reasonably well on all platforms.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gPoV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gPoV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png 424w, https://substackcdn.com/image/fetch/$s_!gPoV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png 848w, https://substackcdn.com/image/fetch/$s_!gPoV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png 1272w, https://substackcdn.com/image/fetch/$s_!gPoV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gPoV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png" width="1400" height="842" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:842,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!gPoV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png 424w, https://substackcdn.com/image/fetch/$s_!gPoV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png 848w, https://substackcdn.com/image/fetch/$s_!gPoV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png 1272w, https://substackcdn.com/image/fetch/$s_!gPoV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F021a43cd-74cd-4f2c-9b1b-7b756824b41d_1400x842.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Responsive Web Design is a technique used to design a web page that &#8216;intelligently&#8217; fits the platform. In software testing, &#8216;responsive web testing&#8217; means testing web pages in different browser dimensions (i.e. different devices).</p><p><strong>Simulate viewing a web page on different platforms</strong></p>
      <p>
          <a href="https://agileway.substack.com/p/40-responsive-web-testing">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#39: Change Available Time Slots (Selenium Advanced User Interactions)]]></title><description><![CDATA[Drag the time slider using Selenium&#8217;s Advanced User Interactions API.]]></description><link>https://agileway.substack.com/p/39-change-available-time-slots-selenium</link><guid isPermaLink="false">https://agileway.substack.com/p/39-change-available-time-slots-selenium</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Wed, 22 May 2024 03:45:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gIzk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gIzk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gIzk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png 424w, https://substackcdn.com/image/fetch/$s_!gIzk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png 848w, https://substackcdn.com/image/fetch/$s_!gIzk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png 1272w, https://substackcdn.com/image/fetch/$s_!gIzk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gIzk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png" width="1400" height="793" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:793,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!gIzk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png 424w, https://substackcdn.com/image/fetch/$s_!gIzk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png 848w, https://substackcdn.com/image/fetch/$s_!gIzk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png 1272w, https://substackcdn.com/image/fetch/$s_!gIzk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d7ce14-5670-4b07-a3be-4e25f13a7d26_1400x793.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Learning Objectives</strong></h2><h3>Introduce Selenium&#8217;s<strong> Advanced User Interactions (AUI) API</strong>.</h3><p>So far we have been performing simple user operations such as clicking a button <em>(mouse)</em> and entering text<em> (keyboard). </em>How about more complex ones, such as drag-n-drop? We can do that with Selenium&#8217;s Advanced User Interactions.</p><h2><strong>Knowledge Point: Selenium Advanced User Interactions</strong></h2><p>While there is the word <strong>&#8216;advanced&#8217; </strong>in Selenium&#8217;s AUI, its syntax is still quite simple:</p><p><code>driver.action.</code> + one or more above operations + <code>.perform</code></p><p><strong>Mouse operations:</strong></p><ul><li><p>click</p></li><li><p>click_and_hold</p></li><li><p>context_click</p></li><li><p>double-click</p></li><li><p>drag_and_drop</p></li><li><p>drag_and_drop_by</p></li><li><p>move_by</p></li><li><p>move_to</p></li><li><p>release</p></li></ul><p><strong>Keyboard operations:</strong></p><ul><li><p>key_down</p></li><li><p>key_up</p></li><li><p>send_keys</p></li></ul><p>In this exercise, we will just focus on one: <code>drag_and_drop_by</code>.</p><h2><strong>Test Design</strong></h2><blockquote><p><em>Italicised text means we have completed them in the previous exercise.</em></p></blockquote><ol><li><p><em>Navigate to the business booking page, which we have done many times in previous exercises.</em></p></li><li><p><em>Click tomorrow&#8217;s date</em></p></li><li><p><em>Assert the time slots.</em></p></li><li><p>Drag the start time slider to narrow the start time range, no matter which direction.</p></li><li><p>Click the blue tick button (above the slider) to apply</p></li><li><p>Assert the available time slots again, shall be less.</p></li></ol><h2><strong>Test Data (Login) :</strong></h2><p>Site URL: https://whenwise.agileway.net<br>Login (Customer): <code>james@client.com<br></code>Password: <code>test01</code></p><p>The business for booking: Wise Tutor. <code>https://whenwise.agileway.net/biz/wise-tutoring</code></p><h2><strong>Tasks</strong></h2><h3><strong>Task 1: Drag the start time slider</strong></h3>
      <p>
          <a href="https://agileway.substack.com/p/39-change-available-time-slots-selenium">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#38: Verify Available Time Slots]]></title><description><![CDATA[Extract the texts from multiple same-styled button texts.]]></description><link>https://agileway.substack.com/p/38-verify-available-time-slots</link><guid isPermaLink="false">https://agileway.substack.com/p/38-verify-available-time-slots</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Mon, 13 May 2024 21:45:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rTY3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the last exercise, we completed one automated test script for the core business scenario. Typically, after that, we will develop automated tests for alternative business workflows or checks around that. Today&#8217;s exercise is an example.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rTY3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rTY3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png 424w, https://substackcdn.com/image/fetch/$s_!rTY3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png 848w, https://substackcdn.com/image/fetch/$s_!rTY3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png 1272w, https://substackcdn.com/image/fetch/$s_!rTY3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rTY3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png" width="1400" height="723" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:723,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!rTY3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png 424w, https://substackcdn.com/image/fetch/$s_!rTY3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png 848w, https://substackcdn.com/image/fetch/$s_!rTY3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png 1272w, https://substackcdn.com/image/fetch/$s_!rTY3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cd365c6-0d87-4b15-991f-63062c902c6b_1400x723.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>Extract the text from multiple same-styled button texts.</p></li><li><p>Review<br>- <code>find_elements</code><br>- List: assertion<br>- List: <code>collect</code> to extract another list from the original List</p></li></ul><h1><strong>Test Design</strong></h1><ol><li><p>Navigate to the business booking page, which we have done many times in previous exercises.</p></li><li><p>Click tomorrow&#8217;s date</p></li><li><p>Extract the available time slots, e.g. 9:00, 10:00, &#8230;, etc, and do an assertion.<br><em>(we stop here for this article, see the next article for the rest of the test steps)</em></p></li></ol><p>Essentially, apart from the test steps from the previous exercise, there is really <strong>just one assertion step </strong>to be done here. Let&#8217;s review assertions in software testing.</p><h2><strong>Test Data (Login) :</strong></h2><p>Site URL: https://whenwise.agileway.net<br>Login (Customer): <code>james@client.com<br></code>Password: <code>test01</code></p><p>The business for booking: Wise Tutor, <code>https://whenwise.agileway.net/biz/wise-tutoring</code></p><h2><strong>Review: Assertion in Selenium WebDriver</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xz06!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xz06!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png 424w, https://substackcdn.com/image/fetch/$s_!xz06!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png 848w, https://substackcdn.com/image/fetch/$s_!xz06!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png 1272w, https://substackcdn.com/image/fetch/$s_!xz06!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xz06!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png" width="1064" height="661" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:661,&quot;width&quot;:1064,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!xz06!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png 424w, https://substackcdn.com/image/fetch/$s_!xz06!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png 848w, https://substackcdn.com/image/fetch/$s_!xz06!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png 1272w, https://substackcdn.com/image/fetch/$s_!xz06!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97ef7325-1cbd-4a3c-8a7b-d1187aa8d250_1064x661.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Tip: Do by simple steps, and step by step.</strong></h2><p>In test automation, only start to work on automated test scripts after you have a good understanding of the goal and the steps, which are quite easy, common sense really. But often, beginners bring their half-understanding and eagerness to accomplish the task, making things complex. Once that happened, got stuck and felt frustrated. This can be totally avoided: Do by simple steps.</p><p>The KISS principle: <strong>Keep it simple, Keep it stupid</strong>. In this assertion step, I will show you how I did this in tiny steps, which many beginners didn&#8217;t have the patience to do that way.</p><p>In this assertion step, think about the following:</p>
      <p>
          <a href="https://agileway.substack.com/p/38-verify-available-time-slots">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#37: Reliable Client Booking Test]]></title><description><![CDATA[A complete, easy to read and maintain test script.]]></description><link>https://agileway.substack.com/p/37-reliable-client-booking-test</link><guid isPermaLink="false">https://agileway.substack.com/p/37-reliable-client-booking-test</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Thu, 09 May 2024 22:38:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3Yd6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3Yd6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3Yd6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png 424w, https://substackcdn.com/image/fetch/$s_!3Yd6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png 848w, https://substackcdn.com/image/fetch/$s_!3Yd6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png 1272w, https://substackcdn.com/image/fetch/$s_!3Yd6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3Yd6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png" width="1400" height="735" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:735,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!3Yd6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png 424w, https://substackcdn.com/image/fetch/$s_!3Yd6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png 848w, https://substackcdn.com/image/fetch/$s_!3Yd6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png 1272w, https://substackcdn.com/image/fetch/$s_!3Yd6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0946064-1d3e-4dd6-b31d-cebd655b8f2d_1400x735.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is an enhancement exercise of the previous two exercises, to create a production-quality automated test script for this core business scenario for WhenWise.</p><h1><strong>Learning Objectives</strong></h1><ul><li><p><strong>The concept of dynamic test data</strong><br>When a manual tester performs &#8220;Clicking on tomorrow&#8217;s date&#8221;, a dynamic test data, they can choose it without thinking. In test automation, we have to &#8216;think&#8217; as &#8216;robots&#8217;,<br>- Get today&#8217;s date<br>- Get tomorrow&#8217;s date<br>- Get the specific format of tomorrow&#8217;s date as required</p></li><li><p><strong>Review<br></strong>- Using <code>text()</code> in XPath<br>- Refactoring</p></li><li><p>Naming of Modal Page Class</p></li></ul><h1><strong>Test Design</strong></h1><p>The steps are the same as before, mainly two enhancement tasks.</p><ol><li><p><strong>Don&#8217;t use hard-coded tomorrow&#8217;s day, make it dynamic.<br></strong>It is common that we focus on getting test steps working at the first go, with some rough edges to be refine later. But be sure to do that after you get first successful run, which meant the core test steps are fine only.<br><br>However, there are many other factors, such as &#8220;Will this test run OK again?&#8221;, &#8220;Will this test run next week?&#8221;, &#8220;It is relatively immune to common changes&#8221;, &#8230; , etc. Make a habit to stabilise and refine the test scripts immediately. For example, the hard-coded date in the previous exercises means the test script works for that day only. Make it dynamic.<br><br>Check out the article, <a href="https://levelup.gitconnected.com/working-automated-test-good-reliable-test-fe487896cdbe">Working Automated Test &#8800; Good Reliable Test</a>.</p></li><li><p><strong>Refactoring<br></strong>For longer test script, it is even more important to refactor as you go. This will help keep your mind clear and debugging test scripts easier.<br>The most common refactoring is &#8220;Extract to Page Function&#8221;.</p></li></ol><h1><strong>Tasks</strong></h1><h2><strong>Task 1. Get a dynamic date for booking, e.g. tomorrow</strong></h2><p>Thanks to the brilliant ActiveSupport library in Ruby, generating a dynamic date is easy.</p>
      <p>
          <a href="https://agileway.substack.com/p/37-reliable-client-booking-test">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#36 Business View Client’s Booking (Date formatting)]]></title><description><![CDATA[Introduce `and` in XPath expression and Date formatting.]]></description><link>https://agileway.substack.com/p/36-business-view-clients-booking</link><guid isPermaLink="false">https://agileway.substack.com/p/36-business-view-clients-booking</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sat, 04 May 2024 22:15:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!z-ad!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We continue #35, an online user made a booking on WhenWise. The business wants to view the booking in its diary (or calendar).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z-ad!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z-ad!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png 424w, https://substackcdn.com/image/fetch/$s_!z-ad!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png 848w, https://substackcdn.com/image/fetch/$s_!z-ad!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png 1272w, https://substackcdn.com/image/fetch/$s_!z-ad!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z-ad!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png" width="1400" height="764" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!z-ad!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png 424w, https://substackcdn.com/image/fetch/$s_!z-ad!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png 848w, https://substackcdn.com/image/fetch/$s_!z-ad!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png 1272w, https://substackcdn.com/image/fetch/$s_!z-ad!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d6b4e0-3fbe-422b-9940-76d04875b6ca_1400x764.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>XPath with <code>and</code></p></li><li><p>Get formatted date</p></li><li><p>Review: XPath <code>text()</code></p></li></ul><h1><strong>Test Design</strong></h1><ul><li><p>Business user logs in</p></li><li><p>Navigate to the tomorrow&#8217;s calendar</p></li><li><p>Find and click the newly booked appointment title</p></li><li><p>Verify the appointment, especially, the appointment date <em>(dynamically tomorrow).</em></p></li></ul><h2><strong>Test Data (Login) :</strong></h2><p>Site URL: https://whenwise.agileway.net<br>Login (Business): <code>tutor@biz.com<br></code>Password: <code>test01</code></p><h1><strong>Tasks</strong></h1><h2><strong>Task 1: Run the client booking test</strong></h2><p>We start with the previous test case. If you run it, it will fail. It was working yesterday! This is because this data in the test case is date/time-related.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hpFe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hpFe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png 424w, https://substackcdn.com/image/fetch/$s_!hpFe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png 848w, https://substackcdn.com/image/fetch/$s_!hpFe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png 1272w, https://substackcdn.com/image/fetch/$s_!hpFe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hpFe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png" width="1400" height="657" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:657,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!hpFe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png 424w, https://substackcdn.com/image/fetch/$s_!hpFe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png 848w, https://substackcdn.com/image/fetch/$s_!hpFe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png 1272w, https://substackcdn.com/image/fetch/$s_!hpFe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5d85cda-32ab-48f5-b2b9-892b73ddf44c_1400x657.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>
      <p>
          <a href="https://agileway.substack.com/p/36-business-view-clients-booking">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#35: Client Makes Booking]]></title><description><![CDATA[Courage to take on the core business scenario, on the first day.]]></description><link>https://agileway.substack.com/p/35-client-makes-booking</link><guid isPermaLink="false">https://agileway.substack.com/p/35-client-makes-booking</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sat, 20 Apr 2024 20:42:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MnhK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MnhK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MnhK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png 424w, https://substackcdn.com/image/fetch/$s_!MnhK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png 848w, https://substackcdn.com/image/fetch/$s_!MnhK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png 1272w, https://substackcdn.com/image/fetch/$s_!MnhK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MnhK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png" width="1400" height="706" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:706,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MnhK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png 424w, https://substackcdn.com/image/fetch/$s_!MnhK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png 848w, https://substackcdn.com/image/fetch/$s_!MnhK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png 1272w, https://substackcdn.com/image/fetch/$s_!MnhK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf9bd459-3b62-4040-aa2a-7fb205aa10e3_1400x706.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>Using <code>text()</code> in XPath</p></li><li><p>Review:<br>- visit a specific URL directly<br>- waits<br>- variable in string, e.g. <code>"Hello #{name}"</code></p></li></ul><p><em>You don&#8217;t need to perform refactoring in this exercise yet, we will do that in Ex#37.</em></p><h1><strong>Tip: Work on the main business scenario on your first day</strong></h1><p>WhenWise is a service booking app. This &#8220;Client Makes Booking&#8221; surely is the one of main business scenarios. Our series is a training course for total beginners, the order does not matter (<em>the first episode using WhenWise is #20: Login tests</em>). When a QA Engineer joins a new team, I recommend getting one simple core business scenario, like this one, implemented.</p><p>Some might say, this business scenario is not complete yet, as no business viewing the submitted booking (BTW, in the next episode). If you can do more, that&#8217;s fine. My point here is not about technical, but rather a mindset and working attitude.</p><p>You only get to make the first impression once. If you can automate a core business scenario (or the first part of it), it makes a good impression. There are so many fake test automation engineers, the chances are that your colleagues would pre-assume you so too.</p><p>Anyway, for total test automation beginners before this course, as you will see, it is not hard to do. :-)</p><h1><strong>Test Design</strong></h1><p><em>After a client user login,</em></p><ul><li><p>Go directly to a business booking page</p></li><li><p>Click on tomorrow&#8217;s date (hard-coded)</p></li><li><p>Select a time slot</p></li><li><p>Enter minimal booking data to make a booking</p></li><li><p>Assert the &#8220;Booking created successfully&#8221; text</p></li></ul><h2><strong>Test Data (Login) :</strong></h2><p>Site URL: https://whenwise.agileway.net<br>Login (Customer): <code>james@client.com<br></code>Password: <code>test01</code></p><p>Select the business: Wise Tutoring, <code>/biz/wise-tutoring</code> .</p><h1><strong>Tasks</strong></h1><h2><strong>Task 1. Visit a specific URL directly</strong></h2><pre><code>driver.get("https://whenwise.agileway.net/biz/wise-tutoring")</code></pre><p>or</p>
      <p>
          <a href="https://agileway.substack.com/p/35-client-makes-booking">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#34: Client Membership (Multiple User Sign in and out)]]></title><description><![CDATA[Use reusable helper functions for a repeated common set of test steps.]]></description><link>https://agileway.substack.com/p/selenium-workbook-34-client-membership</link><guid isPermaLink="false">https://agileway.substack.com/p/selenium-workbook-34-client-membership</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sun, 14 Apr 2024 18:31:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!m98L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><p><em>This article is one of the &#8220;<a href="https://agileway.substack.com/s/selenium-webdriver-training-workshop">Selenium Training Workbook</a>&#8221; series, a set of bite-sized exercises. While each exercise is independent, it may require knowledge and practices covered in previous episodes.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m98L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m98L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png 424w, https://substackcdn.com/image/fetch/$s_!m98L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png 848w, https://substackcdn.com/image/fetch/$s_!m98L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png 1272w, https://substackcdn.com/image/fetch/$s_!m98L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m98L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png" width="1456" height="763" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:763,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!m98L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png 424w, https://substackcdn.com/image/fetch/$s_!m98L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png 848w, https://substackcdn.com/image/fetch/$s_!m98L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png 1272w, https://substackcdn.com/image/fetch/$s_!m98L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2849c353-f233-4ba5-9eaa-06b93f888fbf_1600x839.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Learning Objectives</h3><ul><li><p>Multiple users log in and out.</p></li><li><p>Review: Extract to Function &amp; Extract to Page refactoring</p></li><li><p>Review: Automate transformed web controls<em>&nbsp;(the previous episode)</em></p></li></ul><h3>Test Design</h3><ul><li><p>The business user signs in</p></li><li><p>Go to its business setting page, set to member access only</p></li><li><p>The business user signs out</p></li><li><p>An existing customer signs in</p></li><li><p>Apply for the membership for one business</p></li><li><p>The customers signs out</p></li><li><p>The business user signs in (again)</p></li><li><p>Find the application for the membership</p></li><li><p>Approve it, e.g. setting the expiry date</p></li><li><p>The business signs out</p></li><li><p>The customer signs in (again)</p></li><li><p>Verify his membership</p></li></ul><h4>Test Data (Login)&nbsp;:</h4><p>Site URL:&nbsp;https://whenwise.agileway.net<br>Login (Business):&nbsp;<code>tennis@biz.com</code><br>Login (Customer):&nbsp;<code>james@client.com<br></code>Password:&nbsp;<code>test01</code></p><h3>Knowledge Point: Use reusable helper functions for repeated common set of test&nbsp;steps.</h3><p>For this test case, there are at least 4 user sign-ins (two different accounts).</p><p>Log in as the customer:</p><pre><code>    driver.find_element(:id, "email").send_keys("james@client.com")
    driver.find_element(:id, "password").send_keys("test01")
    driver.find_element(:id, "login-btn").click</code></pre><p>Login as the business user:</p><pre><code>    driver.find_element(:id, "email").send_keys("tennis@biz.com")
    driver.find_element(:id, "password").send_keys("test01")
    driver.find_element(:id, "login-btn").click</code></pre><p>Also, at least three user sign-outs, the same regardless of account.</p><pre><code>driver.find_element(:id, "avatar").click
sleep 1
driver.find_element(:id, "logout-link").click</code></pre><p>Now imagine, with 7 segments of these in one test script. Not tidy, right?</p><p>A better way is to extract the above into functions.</p>
      <p>
          <a href="https://agileway.substack.com/p/selenium-workbook-34-client-membership">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#33: Client Membership (Transformed Controls)]]></title><description><![CDATA[Click transformed (styled) web controls.]]></description><link>https://agileway.substack.com/p/33-client-membership-transformed</link><guid isPermaLink="false">https://agileway.substack.com/p/33-client-membership-transformed</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sun, 07 Apr 2024 00:54:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z9T8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z9T8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z9T8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png 424w, https://substackcdn.com/image/fetch/$s_!Z9T8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png 848w, https://substackcdn.com/image/fetch/$s_!Z9T8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png 1272w, https://substackcdn.com/image/fetch/$s_!Z9T8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z9T8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png" width="1400" height="878" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:878,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Z9T8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png 424w, https://substackcdn.com/image/fetch/$s_!Z9T8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png 848w, https://substackcdn.com/image/fetch/$s_!Z9T8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png 1272w, https://substackcdn.com/image/fetch/$s_!Z9T8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd5ff80-9317-44cf-b909-a1aa9d8fcebc_1400x878.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>Locate a Transformed Web Control</p></li><li><p>Review:&nbsp;<code>find_elements</code></p></li><li><p>Review: Using XPath to go up to parent nodes</p></li></ul><h1><strong>Knowledge Point: Transformed Web Control</strong></h1><p>A transformed web control is a web element that is transformed that look different from the standard ones, as shown below.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AemQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AemQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png 424w, https://substackcdn.com/image/fetch/$s_!AemQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png 848w, https://substackcdn.com/image/fetch/$s_!AemQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png 1272w, https://substackcdn.com/image/fetch/$s_!AemQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AemQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png" width="1400" height="735" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:735,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!AemQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png 424w, https://substackcdn.com/image/fetch/$s_!AemQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png 848w, https://substackcdn.com/image/fetch/$s_!AemQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png 1272w, https://substackcdn.com/image/fetch/$s_!AemQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be53f45-baa3-483c-9df9-ebcee2daeba0_1400x735.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is commonly accomplished using (on the fly) JavaScript, which conceals the original web control and replaces it with a styled control that serves the same purpose.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WkQ-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WkQ-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png 424w, https://substackcdn.com/image/fetch/$s_!WkQ-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png 848w, https://substackcdn.com/image/fetch/$s_!WkQ-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png 1272w, https://substackcdn.com/image/fetch/$s_!WkQ-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WkQ-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png" width="1400" height="514" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:514,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!WkQ-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png 424w, https://substackcdn.com/image/fetch/$s_!WkQ-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png 848w, https://substackcdn.com/image/fetch/$s_!WkQ-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png 1272w, https://substackcdn.com/image/fetch/$s_!WkQ-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d2fae2f-cb4d-4da3-bb40-a4e269abc125_1400x514.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The original &lt;select&gt; dropdown control is now put into under &lt;div class=&#8217;hide-select&#8217;&gt;, hidden. The JavaScript generates a list of options in a new &lt;ul&gt; elements.</figcaption></figure></div><p>Although the functionality remains unchanged, the behaviour of a transformed web control can differ.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QU7N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QU7N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png 424w, https://substackcdn.com/image/fetch/$s_!QU7N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png 848w, https://substackcdn.com/image/fetch/$s_!QU7N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png 1272w, https://substackcdn.com/image/fetch/$s_!QU7N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QU7N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png" width="1400" height="711" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:711,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!QU7N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png 424w, https://substackcdn.com/image/fetch/$s_!QU7N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png 848w, https://substackcdn.com/image/fetch/$s_!QU7N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png 1272w, https://substackcdn.com/image/fetch/$s_!QU7N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5ecaeca-0e0f-4478-af4b-a162ab88404f_1400x711.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This certainly affects the automated test scripts. For starters, the element in the raw HTML source is hidden. We need to drive the newly-generated transformed control instead.</p><h2><strong>Example: Select an option in a Dropdown List</strong></h2><p>For a standard dropdown, a typical Selenium test step as below.</p>
      <p>
          <a href="https://agileway.substack.com/p/33-client-membership-transformed">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#32: Quick Search Clients (Live Search)]]></title><description><![CDATA[Review of waits and extract to function refactoring]]></description><link>https://agileway.substack.com/p/32-quick-search-clients-live-search</link><guid isPermaLink="false">https://agileway.substack.com/p/32-quick-search-clients-live-search</guid><dc:creator><![CDATA[Zhimin Zhan]]></dc:creator><pubDate>Sun, 24 Mar 2024 03:46:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OW4M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OW4M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OW4M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png 424w, https://substackcdn.com/image/fetch/$s_!OW4M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png 848w, https://substackcdn.com/image/fetch/$s_!OW4M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png 1272w, https://substackcdn.com/image/fetch/$s_!OW4M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OW4M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png" width="1400" height="862" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:862,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!OW4M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png 424w, https://substackcdn.com/image/fetch/$s_!OW4M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png 848w, https://substackcdn.com/image/fetch/$s_!OW4M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png 1272w, https://substackcdn.com/image/fetch/$s_!OW4M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f94ce89-28af-444a-a2ba-ee6de4c6c382_1400x862.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>Test Data Preparation</p></li><li><p>Search-as-you-type text search and select a result</p></li><li><p>Review: Waiting</p></li><li><p>Review: Extract to Function refactoring</p></li></ul><h1><strong>Test Design</strong></h1><p>As for any searching-related automated tests, the first thought for QA engineers is test data preparation. For example, WhenWise live search supports several modes:</p><ul><li><p>By first name, e.g. &#8220;James&#8221; for full name &#8220;James Bond&#8221;</p></li><li><p>By last name, e.g. &#8220;Bond&#8221;</p></li><li><p>By initials, e.g. &#8220;J B&#8221;</p></li></ul><p>Also, we need to consider &#8220;No matches&#8221;, &#8220;Single result&#8221;, and &#8220;Multiple results&#8221;. In summary, you need to consider the above before writing automated test scripts.</p><p>A quick recap of the two common ways to prepare test data in automated test scripts:</p><ul><li><p>Using seeded data</p></li><li><p>Enter new test data for this test script</p></li></ul><p>Because the WhenWise test server has a built-in data reset utility, the first approach is a lot easier.</p><h2><strong>Test Data (Login) :</strong></h2><p>Site URL:&nbsp;https://whenwise.agileway.net<br>Login:&nbsp;<code>physio@biz.com</code><br>Password:&nbsp;<code>test01</code></p><h1><strong>Tasks</strong></h1><h2><strong>Task 1: Live Search</strong></h2><p>A live search box returns a list of matching results as a user types. This is achieved via AJAX.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d4Kp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d4Kp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png 424w, https://substackcdn.com/image/fetch/$s_!d4Kp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png 848w, https://substackcdn.com/image/fetch/$s_!d4Kp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png 1272w, https://substackcdn.com/image/fetch/$s_!d4Kp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d4Kp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png" width="710" height="164" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:164,&quot;width&quot;:710,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!d4Kp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png 424w, https://substackcdn.com/image/fetch/$s_!d4Kp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png 848w, https://substackcdn.com/image/fetch/$s_!d4Kp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png 1272w, https://substackcdn.com/image/fetch/$s_!d4Kp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0e4f9d9-07a0-464d-81f0-e60ad0c71a1b_710x164.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div>
      <p>
          <a href="https://agileway.substack.com/p/32-quick-search-clients-live-search">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#31: Add New Group Lesson Service (XPath locator)]]></title><description><![CDATA[A comparison of using &#8216;find_elements&#8217; and XPath locator for non-straightforward automation step.]]></description><link>https://agileway.substack.com/p/31-add-new-group-lesson-service-xpath</link><guid isPermaLink="false">https://agileway.substack.com/p/31-add-new-group-lesson-service-xpath</guid><dc:creator><![CDATA[Zhimin Zhan]]></dc:creator><pubDate>Tue, 19 Mar 2024 03:13:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cXpr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cXpr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cXpr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png 424w, https://substackcdn.com/image/fetch/$s_!cXpr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png 848w, https://substackcdn.com/image/fetch/$s_!cXpr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png 1272w, https://substackcdn.com/image/fetch/$s_!cXpr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cXpr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png" width="1400" height="893" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:893,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!cXpr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png 424w, https://substackcdn.com/image/fetch/$s_!cXpr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png 848w, https://substackcdn.com/image/fetch/$s_!cXpr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png 1272w, https://substackcdn.com/image/fetch/$s_!cXpr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86fd2b72-1e22-41ce-8cac-cdebe0f3b77a_1400x893.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>Click a specific button or link among several with the same text</p></li><li><p>Review: Find multiple matching elements</p></li><li><p>List operations (in programming)</p></li><li><p>Review: XPath locator, going up to a parent node.</p></li></ul><h1><strong>Test Design</strong></h1><ul><li><p>Navigate to the services list page</p></li><li><p>Click the &#8220;+ NEW SERVICE&#8221; button for the &#8220;Group lesson&#8221; category</p></li><li><p>Fill test data to create a new service and assert a successful creation.</p></li></ul><h2><strong>Test Data (Login):</strong></h2><p>Site URL:&nbsp;https://whenwise.agileway.net<br>Login:&nbsp;<code>coach@biz.com</code><br>Password:&nbsp;<code>test01</code></p><h1><strong>Tasks</strong></h1><h2><strong>Task 1. Click the &#8220;+ NEW SERVICE&#8221; button under the category &#8220;Group lesson&#8221;</strong></h2>
      <p>
          <a href="https://agileway.substack.com/p/31-add-new-group-lesson-service-xpath">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#30: Client Sorting (Find multiple elements in Table)]]></title><description><![CDATA[Get cell text in a HTML table, Find multiple elements, and List Operations.]]></description><link>https://agileway.substack.com/p/30-client-sorting-find-multiple-elements</link><guid isPermaLink="false">https://agileway.substack.com/p/30-client-sorting-find-multiple-elements</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Fri, 08 Mar 2024 23:20:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ntnQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the <a href="https://agileway.substack.com/p/29-searchfindfilter-clients-test">previous episode</a>, we did a few client-searching tests. A related test will be sorting on the returned the results.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ntnQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ntnQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png 424w, https://substackcdn.com/image/fetch/$s_!ntnQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png 848w, https://substackcdn.com/image/fetch/$s_!ntnQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png 1272w, https://substackcdn.com/image/fetch/$s_!ntnQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ntnQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png" width="1400" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ntnQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png 424w, https://substackcdn.com/image/fetch/$s_!ntnQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png 848w, https://substackcdn.com/image/fetch/$s_!ntnQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png 1272w, https://substackcdn.com/image/fetch/$s_!ntnQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0feac347-5611-4a31-809e-3d5f79b66ce2_1400x832.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>Get cell text in a HTML table</p></li><li><p>Review: Find multiple matching elements</p></li><li><p>List operations (in programming)</p></li><li><p>Assert a list</p></li><li><p>Review: Test data preparation</p></li></ul><h1><strong>Test Design</strong></h1><ol><li><p>Prepare some client data</p></li><li><p>Perform a search</p></li><li><p>Click the sorting by email, wait a second or so, verify the client list is ordered.<br><em>(Note: there are two sorting orders, ascending or descending)</em></p></li><li><p>Do the same for sorting by name<br><em>(Note: in this app, sorting by name means by last name)</em></p></li></ol><h2><strong>Test Data (Login):</strong></h2><p>Site URL:  https://whenwise.agileway.net<br>Login: <code>driving@biz.com</code><br>Password: <code>test01</code></p><h1><strong>Tasks</strong></h1><h2><strong>Task 1. Get cell text in an HTML table</strong></h2><p>A typical HTML table looks like below:</p><pre><code>&lt;table id="clients-table'&gt;
 &lt;tr&gt;
  &lt;td&gt; cell 1-1 &lt;/td&gt;
  &lt;td&gt; cell 1-2 &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td&gt; cell 2-1 &lt;/td&gt;
  &lt;td&gt; cell 2-2 &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;</code></pre><p><code>&lt;td&gt;</code> <em>(table data) </em>is also known as cell.</p>
      <p>
          <a href="https://agileway.substack.com/p/30-client-sorting-find-multiple-elements">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#29: Search/Find/Filter Clients (Test Data Preparation)]]></title><description><![CDATA[Test data preparation; Search as you type]]></description><link>https://agileway.substack.com/p/29-searchfindfilter-clients-test</link><guid isPermaLink="false">https://agileway.substack.com/p/29-searchfindfilter-clients-test</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Mon, 04 Mar 2024 04:50:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FK8t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This exercise will introduce an important concept in E2E Test Automation: <strong>Test Data Preparation</strong>. Like many websites, the WhenWise app has a search function. In this exercise, we will do a simple search, finding clients by name.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FK8t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FK8t!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png 424w, https://substackcdn.com/image/fetch/$s_!FK8t!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png 848w, https://substackcdn.com/image/fetch/$s_!FK8t!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png 1272w, https://substackcdn.com/image/fetch/$s_!FK8t!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FK8t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png" width="1400" height="793" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:793,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!FK8t!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png 424w, https://substackcdn.com/image/fetch/$s_!FK8t!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png 848w, https://substackcdn.com/image/fetch/$s_!FK8t!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png 1272w, https://substackcdn.com/image/fetch/$s_!FK8t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e2288f-2855-43ff-8b0e-440e528155d5_1400x793.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>Test Data Preparation</p></li><li><p>Make test data available for all test cases in one test script</p></li><li><p>Search-as-you-type text field</p></li></ul><h1><strong>Test Design</strong></h1><p>For customer name searching, we must prepare a set of person names first (for different scenarios). There are two methods:</p><ul><li><p>Using seeded data</p></li><li><p>Enter new test data for this test script</p></li></ul><h2><strong>Method 1: (pure) Seeded test data</strong></h2><p>The test script depends on the seeded test data if the app provides this utility (WhenWise does, see <a href="https://medium.com/geekculture/free-test-automation-practice-site-with-database-reset-7c246cef76b0">this article</a>).</p><p><strong>Pros:</strong></p><ul><li><p>Very simple (for this test script), just use them.</p></li><li><p>Test execution will be fast</p></li></ul><p><strong>Cons:</strong></p><ul><li><p>Efforts to create and maintain the test data</p></li><li><p>If there are changes to seeded client test data, this test script (most likely) will fail.</p></li></ul><h2><strong>Method 2: Fresh newly created test data for this test script</strong></h2>
      <p>
          <a href="https://agileway.substack.com/p/29-searchfindfilter-clients-test">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[#28: CRUD Test Revisit (without Database Reset) ]]></title><description><![CDATA[Client CRUD Test without Database Reset.]]></description><link>https://agileway.substack.com/p/28-crud-test-revisit-without-database</link><guid isPermaLink="false">https://agileway.substack.com/p/28-crud-test-revisit-without-database</guid><dc:creator><![CDATA[Courtney Zhan]]></dc:creator><pubDate>Sat, 24 Feb 2024 08:23:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Zej9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This article is one of the &#8220;<a href="https://agileway.substack.com/s/selenium-webdriver-training-workshop">Selenium Training Workbook</a>&#8221; series, a set of bite-sized exercises. While each exercise is independent, it may require knowledge and practices covered in previous episodes.</em></p><p>In the <a href="https://agileway.substack.com/p/selenium-workbook-27-crud-test-revisit">previous episode</a>, we created CRUD Client tests for WhenWise with <a href="https://zhiminzhan.medium.com/my-innovative-solution-to-test-automation-the-simpsons-data-reset-pattern-eb5947dea9cb">database reset (my father calls it &#8216;The Simpsons Pattern&#8217;)</a>. However, 99.9+% web apps won&#8217;t have this database reset utility implemented. This exercise shows a typical set of CRUD tests, without database reset.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Zej9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Zej9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png 424w, https://substackcdn.com/image/fetch/$s_!Zej9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png 848w, https://substackcdn.com/image/fetch/$s_!Zej9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png 1272w, https://substackcdn.com/image/fetch/$s_!Zej9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Zej9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png" width="1400" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Zej9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png 424w, https://substackcdn.com/image/fetch/$s_!Zej9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png 848w, https://substackcdn.com/image/fetch/$s_!Zej9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png 1272w, https://substackcdn.com/image/fetch/$s_!Zej9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae853b3-5edd-42ae-9e58-8f54d0da8bc9_1400x716.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Learning Objectives</strong></h1><ul><li><p>Review CRUD Test Design, without database reset.</p></li><li><p>Review refactoring</p></li><li><p>Variables and Scope</p></li><li><p>Global Variables</p></li></ul><h1><strong>Test Design</strong></h1><p>We still design four test cases as a whole, putting them into a single test script file.</p><ul><li><p><strong>CREATE</strong><br>We need to create a unique client every single time. This can be achieved using dynamicly-generated names and emails.</p></li><li><p><strong>READ<br></strong>Use the new client freshly created by the above test case. This means We need to remember the new client name.</p></li><li><p><strong>UPDATE and DELETE<br></strong>These two actually are similar to the READ &#8212; using the newly created client. DELETE <em>must</em> be the last test case in the script.</p></li></ul><h2><strong>Test Data:</strong></h2><p>Site URL: https://whenwise.agileway.net<br>Login: <code>driving@biz.com</code><br>Password: <code>test01</code></p><h1><strong>Tasks</strong></h1><h2><strong>Task 1: Using Dynamic Data for CREATE</strong></h2><p>To ensure uniqueness within the system, each client must have a distinct email address. This means it has to be dynamically assigned. Thanks to Faker, it is quite easy to do so.</p>
      <p>
          <a href="https://agileway.substack.com/p/28-crud-test-revisit-without-database">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>