{"id":16883696,"url":"https://github.com/rishantagarwal/advancedselenium","last_synced_at":"2026-05-13T07:40:01.169Z","repository":{"id":71343159,"uuid":"43483900","full_name":"rishantagarwal/advancedselenium","owner":"rishantagarwal","description":null,"archived":false,"fork":false,"pushed_at":"2015-10-01T08:21:35.000Z","size":660,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-25T06:41:22.612Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rishantagarwal.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":"2015-10-01T07:32:53.000Z","updated_at":"2015-10-01T08:03:53.000Z","dependencies_parsed_at":"2023-03-07T13:15:30.561Z","dependency_job_id":null,"html_url":"https://github.com/rishantagarwal/advancedselenium","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishantagarwal%2Fadvancedselenium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishantagarwal%2Fadvancedselenium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishantagarwal%2Fadvancedselenium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishantagarwal%2Fadvancedselenium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rishantagarwal","download_url":"https://codeload.github.com/rishantagarwal/advancedselenium/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244554125,"owners_count":20471173,"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","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":[],"created_at":"2024-10-13T16:13:55.842Z","updated_at":"2026-05-13T07:39:56.150Z","avatar_url":"https://github.com/rishantagarwal.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Info\n\nThis is a Java project that can be used as a template (or archetype) to start a WebDriver web browser testing project.  \nI chose to simplify and and implement using simply WebDriver and Gradle.\u003cbr/\u003e\n\n\nSpecial thanks to the creator of Gradle, for having some good examples.\n[Ken Sipe](https://github.com/kensipe/gradle-samples)\n\nNOTE: Keep in mind that these examples use multiple WebDriver instances, which may not be a normal design\npattern, especially in frameworks that are limited to one WebDriver instance, such as SauceLabs.\n\n# Versions\n\nVersion 1.0 - March 16th, 2013\n\nVersion 2.0 - September 6th, 2013\n\n# Project Layout\n\n    Gradle Project Root\n    +--- Project ':sub-project'\n    +--- Project ':commonlib'\n    +--- Project ':etsy'\n    +--- Project ':parallelwindows'\n    +--- ...\n\n# Overview\n\n    1. Project \"sub-project\" is a project you add yourself, if you \n       want.\n    2. Project \"etsy\" is a RemoteWebDriver JUnit test-suite using\n       a local Grid server that is capable of running multiple \n       threads of single-window web browser tests.\n    3. Project \"parallelwindows\" is a test of a  multi-window and\n       multi-threaded run using a static local website.\n    4. Project \"commonlib\" is a sub-project containing methods \n       shared between projects.\n\n# SubProjects\nLinks to example sub-projects that belong to this project:\n\n[ParallelWebDriver](https://github.com/djangofan/selenium-gradle-example/tree/master/parallelwindows)\n\n[Etsy](https://github.com/djangofan/selenium-gradle-example/tree/master/etsy)\n\n# Quick Start\nNormally, this project would be ran through the Gradle plugin for Eclipse IDE, but I have tried to make it easier \nby including a method to run dynamically and directly from the .zip distribution on the command line.\n\nTo try this project without requiring a Java IDE, just make sure you download Gradle 1.7+, configure your \nGRADLE_HOME environment variable, add %GRADLE_HOME%\\bin to your PATH, and then download the .zip distribution\nof this project, unzip it, and run the included \u003cb\u003erunProjectMenu.bat\u003c/b\u003e script.\n\n# Implemented Features\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eFeature\u003c/th\u003e\n    \u003cth\u003eDescription\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eJUnit based\u003c/th\u003e\n    \u003ctd\u003eFor use ONLY with JUnit 4.11 or higher because of the usage of the parameterized capability of JUnit. \n    This dependency is configured by the Gradle build script.\u003c/td\u003e\n  \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003cth\u003eParallel runner\u003cbr/\u003eusing JUnit\u003c/th\u003e\n    \u003ctd\u003eA parallel runner using the Gradle maxParallelForks method.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eNative automation support\u003c/th\u003e\n    \u003ctd\u003eFor use with Sikuli 1.0.1 or higher to test native elements that WebDriver \"Action\" is unable to \n    control. This dependency is configured in the Gradle build script.  If you implement this however, you\n    may not be able to use the remote webdriver option in your project.\u003c/td\u003e\n  \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003cth\u003eUses RemoteWebDriver\u003cbr/\u003eJSON Hub Server\u003c/th\u003e\n    \u003ctd\u003eI have included an implementation of a WebDriverServer class that starts a RemoteWebDriver JSON \n    Hub server instance in the BeforeClass method of tests. This server is a static member of the utility\n    class that the tests extend.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eParameterized data \u003cbr/\u003edriven capability\u003c/th\u003e\n    \u003ctd\u003eUnit tests are parameterized from a csv file.  Can also load tests from XML, XLS, a database, etc.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eLogging and Reporting\u003c/th\u003e\n    \u003ctd\u003eLogs test output to console and to a file using SLF4j/LogBack API, and configured by a \u003cb\u003elogback.xml\u003c/b\u003e\n    file. Will generate reports of JUnit test results at \u003cb\u003ebuild/reports/test/index.html\u003c/b\u003e .  Will place a\n    junit.log file at \u003cb\u003ebuild/logs/junit.log\u003c/b\u003e .\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003ePage Object design \u003cbr/\u003epattern\u003c/th\u003e\n    \u003ctd\u003eUses the WebDriver \"page object\" design pattern, enhanced by the Selenium \"LoadableComponent\" \n    extendable class.\u003c/td\u003e\n  \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003cth\u003eFluent API design\u003cbr/\u003epattern\u003c/th\u003e\n    \u003ctd\u003eImplemented examples of the \u003ci\u003eFluent API\u003c/i\u003e design pattern while retaining capability of \n    the traditional page object pattern.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eMulti-project build\u003cbr/\u003econfiguration\u003c/th\u003e\n    \u003ctd\u003eImplemented multiple project build.  The root project has a subproject called \"core\" and all \n   subprojects of \"core\" inherit classes from it.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eRun Options\u003c/th\u003e\n    \u003ctd\u003eYou have three different options for running the tests: via the Gradle GUI, via your IDE Gradle\n    plugin, or via Gradle command line. To run with the JUnit runner in your IDE, you would need to manually\n    export your project as a normal Java project, because this template does not support that.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eCore utility package\u003c/th\u003e\n    \u003ctd\u003eAll projects inherit from a \"core\" project that contains classes where you can store methods\n        that all of your projects can share between them.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n# Un-implemented Features\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eFeature\u003c/th\u003e\n    \u003cth\u003eDescription\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eGradle Wrapper\u003c/th\u003e\n    \u003ctd\u003eDid not choose to implement the Gradle wrapper because I believe that downloading Gradle and\n       configuring GRADLE_HOME and PATH are easy enough.  Also, a manual setup of Gradle gives us more\n       control using a batch script.  Also, the development IDE is usually configured to use the \n       statically defined Gradle home.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eJar executable option\u003c/th\u003e\n    \u003ctd\u003eCreates an uberJar of all projects and subprojects that can be ran by double clicking\n       the .jar file.  If you don't have the file association supporting it, we include a \n       jarAssociation.bat file to setup the file association on your Windows system.  I was planning\n       to implement this but currently having trouble getting it to work.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n# Configuration And Setup\n\n#### Eclipse\nTo get it working on a regular Eclipse Kepler (2.9.0) or later, follow these steps:\n \n    1. Using the \"Eclipse Marketplace\" settings panel under the \n       Eclipse \"Help\" menu, install the Gradle tooling \n       functionality.  You can do it through the \"Install New\n       Software\" menu, but it isn't recommended.  If Market is\n       missing from your Eclipse, then add the repo:\n       http://download.eclipse.org/releases/kepler\n       and then install the \"market\" and restart Eclipse.\n    2. Download the .zip archive of this GitHub project \n       distribution and unzip it to your workspace.  An example:\n       \"C:\\Eclipse32\\workspace\\selenium-gradle-example\\\" .\n    3. Use the Eclipse \"Import\" function from the Eclipse \"File\n       menu\" to import a \"Project\" of type \"Gradle\".\n    4. Browse using the import wizard to your projects \"root\" \n       directory.  Then click the \"Build model\" button.\n    5. Check all checkboxes .  You could also choose to add all \n       to your \"working set\" if you like but it isn't required.\n    6. Rebuild the dependencies by right clicking on the project\n       and then choose Gradle--\u003eRefresh All Dependencies\n    7. Right click on your project and choose \"Run As--\u003eExternal\n       Tools Configuration\".  Configure a new \"clean\" and \"build\"\n       configuration for running a sub-project (or whatever tasks\n       you want to execute).\n    8. Optionally, you can run this project on the command line\n       with something like \"gradle etsy:clean etsy:runTask --info\" \n       and it will execute the project unit tests.  Also, this \n       project provides a .bat batch script that does this and\n       provides a menu of other actions you can execute, including \n       running the \"Gradle GUI\".\n\n#### IntelliJ-IDEA\nThe required Gradle functionality is already built into IntelliJ-IDEA 12.1+ .  I think using IDEA is more difficult\nbut go ahead if you are familiar with it.\n\n#### Notes\nWebsite of this project:\u003cbr/\u003e\nhttp://djangofan.github.com/selenium-gradle-example/\u003cbr/\u003e\n\u003cbr/\u003e\n\n# FAQ\n\n    1. If the intellisense in Eclipse doesn't work, make sure you \n       have added all the .class directories to your Eclipse project\n       classpath.  (See the included .classpath file.)\n    2. I use \"GitHub GUI\" to sync my local project repo to GitHub. \n       If you fork my project, I would recommend doing it this way\n       unless you are a Git expert and prefer another way.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishantagarwal%2Fadvancedselenium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frishantagarwal%2Fadvancedselenium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishantagarwal%2Fadvancedselenium/lists"}