{"id":23806747,"url":"https://github.com/sureshpandiyan1/whaly","last_synced_at":"2025-08-04T12:05:54.984Z","repository":{"id":61827843,"uuid":"555195742","full_name":"sureshpandiyan1/whaly","owner":"sureshpandiyan1","description":"easy way to write a text-based automation for selenium (in ruby)","archived":false,"fork":false,"pushed_at":"2022-11-02T05:08:33.000Z","size":50,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-17T11:50:30.820Z","etag":null,"topics":["automation","bdd-style","bdd-style-testing-framework","chrome","firefox","for","ie","linux","ruby","selenium","test","test-automation","testing","text-based"],"latest_commit_sha":null,"homepage":"https://sureshpandiyan1.github.io/whaly/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sureshpandiyan1.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-21T05:43:10.000Z","updated_at":"2024-01-10T09:12:57.000Z","dependencies_parsed_at":"2022-10-21T22:45:15.883Z","dependency_job_id":null,"html_url":"https://github.com/sureshpandiyan1/whaly","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/sureshpandiyan1/whaly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureshpandiyan1%2Fwhaly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureshpandiyan1%2Fwhaly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureshpandiyan1%2Fwhaly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureshpandiyan1%2Fwhaly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sureshpandiyan1","download_url":"https://codeload.github.com/sureshpandiyan1/whaly/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureshpandiyan1%2Fwhaly/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268479700,"owners_count":24256878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","bdd-style","bdd-style-testing-framework","chrome","firefox","for","ie","linux","ruby","selenium","test","test-automation","testing","text-based"],"created_at":"2025-01-01T23:13:41.702Z","updated_at":"2025-08-04T12:05:54.962Z","avatar_url":"https://github.com/sureshpandiyan1.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/112636345/197125026-49d38ff2-07e9-4f53-ac38-3df5dd6746ea.png\"\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003ca href=\"https://github.com/sureshpandiyan1/whaly/stargazers\"\u003e\u003cimg alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/sureshpandiyan1/whaly\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/sureshpandiyan1/whaly/network\"\u003e\u003cimg alt=\"GitHub forks\" src=\"https://img.shields.io/github/forks/sureshpandiyan1/whaly\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/sureshpandiyan1/whaly//issues\"\u003e\u003cimg alt=\"GitHub issues\" src=\"https://img.shields.io/github/issues/sureshpandiyan1/whaly\"\u003e\u003c/a\u003e\n\u003cimg alt=\"GitHub tag (latest by date)\" src=\"https://img.shields.io/github/v/tag/sureshpandiyan1/whaly\"\u003e\n\u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/sureshpandiyan1/whaly\"\u003e\n\u003cimg alt=\"Gem\" src=\"https://img.shields.io/gem/dv/whaly/1.0.4?color=red\"\u003e\n    \n    \n\u003c/div\u003e\n\n# Description\n\nwhaly is the easy way to write a browser-based selenium scripts.It's fully focused on the words,\nbecause words better than codes.it's written in ruby language.it's only compatible for linux platform.\n\n## pre-release version\n    \n    v1.0.4\n\n\n# Pre-requisite\n\n    BEFORE YOU USE WHALY\n\n    - need to install ruby interpreter\n    - following gem package need to install - selenium-webdriver \n\n\n## you can install via gem \u0026 guidelines how to use whaly gem\n\n    gem install whaly\n    \n    ## guidelines for ruby users\n    \n    step1: create a your own empty filename, Example: 'test_google.txt'\n    step2: create a new .rb file, Example: 'whaly-file.rb'\n        require 'whaly'\n        \n        my_whaly = Whaly.new()\n        my_whaly.whaly_s('test_google.txt')\n       \n     step3:  run whaly-file.rb in your terminal, Example: whaly-file.rb\n     \n     \"whaly engine is running until you press ctrl + c to stop\"\n     \n     step4: you are ready to write whaly codes in demo.txt, \n            it will convert to selenium code in whalytest_test_google.txt.rb\n            \n     if you want to stop the whaly-engine, just press ctrl + c at terminal for stop\n     \n    \n## Phase\n    -pre-release\n    \n    Note: maybe it's contains few bugs\n\n    \n# highlights\n- you can write words instead of codes\n- runs smoothly without delay\n- builtin ruby\n- easy to use\n\n\n# how to setup ?\n\n    In your bash,\n    alias whaly='bash whalys/whaly-runner.sh'\n\n\n# how to run ?\n    \n    whaly \u003cyour text filename\u003e [--options]\n    \n    Example:\n        whaly google.txt --create\n\n\n# demo (windows/bash)\n\n[whaly_demos_edit_0.webm](https://user-images.githubusercontent.com/112636345/197678607-a462856a-4c49-4345-a625-45edcb7ce2a9.webm)\n\n## whaly automatically write a selenium based by whaly\n\n![whaly_dd_edit_0_edit_4](https://user-images.githubusercontent.com/112636345/197680695-9edd9d0d-dc45-4faa-b462-7188a3abb1f5.gif)\n\nafter you completely written it, just stop it ctrl + c\n\n\n# list of all valid whaly - pre-release\n\n| if you write this in whaly                              | produce                                                                                                     |\n|---------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|\n| @import - whaly-engine                                  | require 'selenium-webdriver'                                                                                |\n| whaly-start-engine c                                    | driver = Selenium::WebDriver.for(:chrome)                                                                   |\n| go to the url \"https://www.google.com\"                  | driver.navigate.to('https://www.google.com')                                                                |\n| find name is 'q' .click                                 | driver.find_element(:name, 'q' ).click                                                                      |\n| delay-for 0.2                                           | sleep 0.2                                                                                                   |\n| select name isz 'animals' and select-by - value - 'dog' | Selenium::WebDriver::Support::Select.new(driver.find_element(:name,  'animals' )).select_by( value , 'dog') |\n| stop-whaly-engine -quit                                 | driver.quit                                                                                                 |\n| add-cookies { name: 'hello' , value: 'howareyou' , same_site: 'Strict'} | driver.manage.add_cookie(name:  'hello',value:  'howareyou',same_site:  'Strict')           |\n| show l-all-cookies                                      | driver.manage.all_cookies                                                                                   |\n| show -Scookies - 'foo'                                  | driver.manage.cookie_named('foo')                                                                           |\n| del -Dcookies  - 'foo'                                  | driver.manage.delete_all_cookies('foo')                                                                     |\n| del d-all-cookies                                       | driver.manage.delete_all_cookies                                                                            |\n| I/O keyboard key-up:(shift).send-keys(4,2).key-down.('how are you').send-keys(:shift).perform | driver.action.key-up:(shift).send-keys(4,2).key-down.('how are you').send-keys(:shift).perform  |\n| \u003c-- button                                               | driver.navigate.back                                |\n| --\u003e button                                               | driver.navigate.forward                             |\n| just refresh!!                                           | driver.navigate.refresh                             |\n\n\n\n    whaly-start-engine \n    c for chrome\n    f for firefox\n    i for ie\n\n\n# Try this Example below:\n\n    step 1: create empty file name as google.txt \u003cbr\u003e\n    step 2: whaly google.txt --create \u003cbr\u003e\n    step 3: whaly google.txt --run\n\n### google.txt\n```\n@import - whaly-engine\n\nstart-whaly-engine c\n\ngo to the url 'https://www.google.com'\n\ndelay-for 3\nfind name is 'q'.send_keys('how are you man')\nfind xpath is '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]'.click\n\ndelay-for 2\nstop-whaly-engine -quit\n```\n### output: \n### this file automatically located at whalytest-scripts/whalytest_demo.txt.rb\n\n![directory](https://user-images.githubusercontent.com/112636345/197121966-edeb1210-190f-4c3f-847c-f6619e655d02.jpg)\n\n```\nrequire 'selenium-webdriver'\n\ndriver = Selenium::WebDriver.for(:chrome)\n\ndriver.navigate.to('https://www.google.com')\nsleep 3\ndriver.find_element(:name, 'q').send_keys('how are you man')\ndriver.find_element(:xpath, '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]').click\n\nsleep 2\ndriver.quit\n```\n\n# code comparsion\n\n![code_comparsion](https://user-images.githubusercontent.com/112636345/197122004-dbddac85-91d9-4e05-89e3-5c6f2d266bf7.png)\n\n\n\n# list of whaly shell commands (not for ruby gems)\n\n| arguments | definition                                                     |\n|-----------|----------------------------------------------------------------|\n| --run     | complier the file continously \u003cbr\u003e whaly [your filename] --run |\n| --create  | create a file format to ruby \u003cbr\u003e whaly [filename] --create    |\n| --about   | about whaly \u003cbr\u003e whaly --about                                 |\n\n\n# main focus of whaly\n    - anybody can use without any prior programming knowledge\n    - easy to use\n\n\n# copyright \u0026 license\n\ncopyright @ Suresh P | All rights reserved | MIT License \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsureshpandiyan1%2Fwhaly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsureshpandiyan1%2Fwhaly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsureshpandiyan1%2Fwhaly/lists"}