{"id":45,"date":"2025-06-02T11:07:42","date_gmt":"2025-06-02T11:07:42","guid":{"rendered":"https:\/\/qaplaybook.com\/?p=45"},"modified":"2025-06-02T11:07:43","modified_gmt":"2025-06-02T11:07:43","slug":"building-your-first-test-automation-script-selenium-or-cypress","status":"publish","type":"post","link":"https:\/\/qaplaybook.com\/index.php\/2025\/06\/02\/building-your-first-test-automation-script-selenium-or-cypress\/","title":{"rendered":"Building Your First Test Automation Script (Selenium or Cypress)"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\"><strong>Why Learn Test Automation?<\/strong><\/h3>\n\n\n\n<p>If you&#8217;re starting your QA career or want to level up your testing skills, learning how to automate tests is a smart move. Automation helps reduce repetitive manual testing, speeds up releases, and makes your resume stand out \u2014 especially in Agile or DevOps teams.<\/p>\n\n\n\n<p>In this guide, you&#8217;ll write your <strong>first test automation script<\/strong> using either <strong>Selenium (Java)<\/strong> or <strong>Cypress (JavaScript)<\/strong> \u2014 no prior automation experience needed.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\ude80 <strong>Option 1: Create a Test Automation Script Using Selenium (Java)<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Set Up Your Environment<\/strong><\/h3>\n\n\n\n<p>You\u2019ll need:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Java (JDK 8+)<\/li>\n\n\n\n<li>IntelliJ or Eclipse<\/li>\n\n\n\n<li>Maven<\/li>\n\n\n\n<li>Selenium WebDriver<\/li>\n<\/ul>\n\n\n\n<p><strong>Maven Dependency:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopyEdit<code>&lt;dependency&gt;\n  &lt;groupId&gt;org.seleniumhq.selenium&lt;\/groupId&gt;\n  &lt;artifactId&gt;selenium-java&lt;\/artifactId&gt;\n  &lt;version&gt;4.18.1&lt;\/version&gt;\n&lt;\/dependency&gt;\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Write a Simple Script<\/strong><\/h3>\n\n\n\n<p>Here\u2019s a script that opens Google and searches for \u201cQA Playbook\u201d.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopyEdit<code>import org.openqa.selenium.By;\nimport org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.WebElement;\nimport org.openqa.selenium.chrome.ChromeDriver;\n\npublic class GoogleSearchTest {\n    public static void main(String[] args) {\n        \/\/ Set up ChromeDriver\n        System.setProperty(\"webdriver.chrome.driver\", \"path\/to\/chromedriver\");\n        WebDriver driver = new ChromeDriver();\n\n        \/\/ Navigate to Google\n        driver.get(\"https:\/\/www.google.com\");\n\n        \/\/ Locate the search box and enter text\n        WebElement searchBox = driver.findElement(By.name(\"q\"));\n        searchBox.sendKeys(\"QA Playbook\");\n        searchBox.submit();\n\n        \/\/ Wait and close\n        try { Thread.sleep(3000); } catch (InterruptedException e) {}\n        driver.quit();\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u2705 <strong>What this does:<\/strong><br>Launches Chrome, searches Google, and closes the browser.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udf3f <strong>Option 2: Create a Test Script Using Cypress (JavaScript)<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Set Up Cypress<\/strong><\/h3>\n\n\n\n<p>You\u2019ll need:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Node.js &amp; npm<\/li>\n\n\n\n<li>A test project folder<\/li>\n<\/ul>\n\n\n\n<p><strong>Install Cypress:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bashCopyEdit<code>npm init -y\nnpm install cypress --save-dev\n<\/code><\/pre>\n\n\n\n<p>Open Cypress with:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bashCopyEdit<code>npx cypress open\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Write a Test Script<\/strong><\/h3>\n\n\n\n<p>Create a file in: <code>cypress\/e2e\/search.cy.js<\/code><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javascriptCopyEdit<code>describe('Google Search Test', () =&gt; {\n  it('searches for QA Playbook', () =&gt; {\n    cy.visit('https:\/\/www.google.com');\n    cy.get('input[name=\"q\"]').type('QA Playbook{enter}');\n    cy.wait(3000);\n  });\n});\n<\/code><\/pre>\n\n\n\n<p>\u2705 <strong>What this does:<\/strong><br>Opens Google in the Cypress test browser, types a search, and waits.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 <strong>Which Tool Should You Learn First?<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Feature<\/th><th>Selenium<\/th><th>Cypress<\/th><\/tr><\/thead><tbody><tr><td>Language<\/td><td>Java, Python, etc.<\/td><td>JavaScript only<\/td><\/tr><tr><td>Setup<\/td><td>More steps<\/td><td>Quick &amp; easy<\/td><\/tr><tr><td>Test Speed<\/td><td>Slower<\/td><td>Fast<\/td><\/tr><tr><td>Community<\/td><td>Mature<\/td><td>Growing fast<\/td><\/tr><tr><td>Use Case<\/td><td>Cross-browser<\/td><td>Mostly Chrome\/Edge<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\ud83d\udca1 <strong>Recommendation:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Start with <strong>Cypress<\/strong> if you know JavaScript or want fast results<\/li>\n\n\n\n<li>Try <strong>Selenium<\/strong> if you&#8217;re already learning Java or need cross-browser support<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcc1 <strong>Tips for Beginners<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Always break your tests into <strong>small reusable parts<\/strong><\/li>\n\n\n\n<li>Use comments to describe each step<\/li>\n\n\n\n<li>Focus on one scenario at a time<\/li>\n\n\n\n<li>Learn basic <strong>selectors<\/strong> (IDs, names, XPaths)<\/li>\n\n\n\n<li>Avoid relying only on <code>Thread.sleep<\/code> \u2013 learn waits and assertions next<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 What\u2019s Next?<\/h2>\n\n\n\n<p>Now that you\u2019ve created your first script, explore these next steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add <strong>assertions<\/strong> to validate results<\/li>\n\n\n\n<li>Run tests in headless mode<\/li>\n\n\n\n<li>Explore <strong>Page Object Model<\/strong> (POM)<\/li>\n\n\n\n<li>Integrate with <strong>CI\/CD<\/strong> tools like GitHub Actions or Jenkins<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udca5 Start Building Your Automation Portfolio Today<\/h3>\n\n\n\n<p>Even a single script can show initiative to employers. Add your code to GitHub and explain the logic in a README. Over time, build on this with multiple test scenarios.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why Learn Test Automation? If you&#8217;re starting your QA career or want to level up your testing skills, learning how to automate tests is a smart move. Automation helps reduce repetitive manual testing, speeds up releases, and makes your resume stand out \u2014 especially in Agile or DevOps teams. In this guide, you&#8217;ll write your &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-test-management","no-thumb"],"_links":{"self":[{"href":"https:\/\/qaplaybook.com\/index.php\/wp-json\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qaplaybook.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qaplaybook.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qaplaybook.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qaplaybook.com\/index.php\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":1,"href":"https:\/\/qaplaybook.com\/index.php\/wp-json\/wp\/v2\/posts\/45\/revisions"}],"predecessor-version":[{"id":46,"href":"https:\/\/qaplaybook.com\/index.php\/wp-json\/wp\/v2\/posts\/45\/revisions\/46"}],"wp:attachment":[{"href":"https:\/\/qaplaybook.com\/index.php\/wp-json\/wp\/v2\/media?parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qaplaybook.com\/index.php\/wp-json\/wp\/v2\/categories?post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qaplaybook.com\/index.php\/wp-json\/wp\/v2\/tags?post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}