https://github.com/jeremyc2/selenium-repl
Selenium Webdriver REPL and test suite scaffolding in JavaScript
https://github.com/jeremyc2/selenium-repl
selenium-javascript selenium-webdriver testing-tools
Last synced: 3 months ago
JSON representation
Selenium Webdriver REPL and test suite scaffolding in JavaScript
- Host: GitHub
- URL: https://github.com/jeremyc2/selenium-repl
- Owner: jeremyc2
- Created: 2021-11-10T18:09:13.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-13T20:34:14.000Z (over 3 years ago)
- Last Synced: 2024-04-24T22:01:06.344Z (about 1 year ago)
- Topics: selenium-javascript, selenium-webdriver, testing-tools
- Language: JavaScript
- Homepage:
- Size: 1.98 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Getting Started
*Currently supports testing in Google Chrome, Edge, and Firefox*
## Before you begin
1. Make sure you have [NodeJS](https://nodejs.org/en/) installed
2. If you do not have PowerShell installed, make sure you have downloaded the webdriver executable## Options
```
Options:
-b, --browser chrome, edge, or firefox
-d, --driverPath folder location of webdriver
-h --headless webdriver headless mode
-s --selectors add additional selector functions to the REPL
--help display help for command
```## Quickstart
Open PowerShell. Enter ```npx selenium-repl```.## Setup
*If you have PowerShell installed, execute ***Setup.ps1*** and skip the remaining setup instructions.*
1. In a Terminal Window, navigate to this repository and enter the command ```npm install```
2. Enter the command ```npm run setup BROWSER DRIVER_PATH``` replacing ***BROWSER*** with chrome, edge, or firefox and ***DRIVER_PATH*** with the path to your folder containing webdriver†## Run the REPL
*If you have PowerShell installed, execute **Start.ps1** and skip the remaining steps.*
1. In a Terminal Window, navigate to this repository and enter the command ```npm start```[Learn about Selenium REPL exclusive functions](https://github.com/jeremyc2/Selenium-REPL/wiki/Selenium-REPL-Exclusive-Functions).
Right-click an element to copy its CSS Selector.## Creating Tests
Refer to the [Official Selenium Documentation](https://www.selenium.dev/documentation/). It is recommended you follow the [Page Object Model
](https://www.selenium.dev/documentation/guidelines/page_object_models/).### Example Test
#### test.js
```javascript
const DriverFactory = require('selenium-repl/DriverFactory'),
LoginPage = require('./pages/LoginPage');function test() {
var driver = new DriverFactory('chrome').driver;driver.get('https://www.google.com');
var loginPage = new LoginPage(driver);
var homePage = loginPage.login('Username', 'Password');// ...
}module.exports = test;
```
#### LoginPage.js
```javascript
const { By } = require('selenium-webdriver'),
HomePage = require('./pages/HomePage');class LoginPage {
usernameField = By.css('#UserName');
passwordField = By.css('#Password');
loginButton = By.css('#LoginButton');constructor(driver) {
this.driver = driver;
}inputUsername(username) {
this.driver.findElement(this.usernameField).sendKeys(username);
}inputPassword(password) {
this.driver.findElement(this.passwordField).sendKeys(password);
}clickLogin() {
this.driver.findElement(this.loginButton).click();
}login(username, password) {
this.inputUsername(username);
this.inputPassword(password);
this.clickLogin();
return new HomePage(this.driver);
}
}module.exports = LoginPage;
```
[Selenium REPL Cheatsheet](https://jeremyc2.github.io/Selenium-REPL/docs/selenium-repl-cheatsheet.html)[JavaScript API Documentation](https://www.selenium.dev/selenium/docs/api/javascript/)
†*If the webdriver folder is your current directory or if it is in your PATH, you may omit this step.*