Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Rasukarusan/shellnium
:dizzy: Selenium Webdriver for Bash (or Zsh).
https://github.com/Rasukarusan/shellnium
bash headless-chrome selenium shell zsh
Last synced: about 2 months ago
JSON representation
:dizzy: Selenium Webdriver for Bash (or Zsh).
- Host: GitHub
- URL: https://github.com/Rasukarusan/shellnium
- Owner: Rasukarusan
- License: mit
- Created: 2020-06-27T15:38:14.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-02-23T09:46:58.000Z (almost 2 years ago)
- Last Synced: 2024-08-02T16:06:28.001Z (5 months ago)
- Topics: bash, headless-chrome, selenium, shell, zsh
- Language: Shell
- Homepage: https://shellnium-site.vercel.app
- Size: 55.7 KB
- Stars: 175
- Watchers: 8
- Forks: 21
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Shellnium
Shellnium is the selenium WebDriver for Bash.
You can exec selenium simply on your terminal.
**All you need is Bash or Zsh.**```sh
#!/usr/bin/env bash
source ./selenium.shmain() {
# Open the URL
navigate_to 'https://google.com'# Get the search box
local searchBox=$(find_element 'name' 'q')# send keys
send_keys $searchBox "panda\n"
}main
```## Documentation
https://shellnium-site.vercel.app
If you learn by watching videos, check out this screencast by [@gotbletu](https://github.com/gotbletu) to explore `shellnium` features.
[![shellnium - Automate The Web Using Shell Scripts - Linux SHELL SCRIPT](https://img.youtube.com/vi/Q10dcPjmRTI/0.jpg)](https://www.youtube.com/watch?v=Q10dcPjmRTI)
## Quick Start
```bash
# Run ChromeDriver before execute script
$ chromedriver# execute script
$ sh demo.sh
```You can add chrome options. e.g. `--headless`.
```sh
$ sh demo.sh --headless --lang=es
```**Make sure you have the right version of ChromeDriver and GoogleChrome.**
```sh
# Check the version of Google Chrome
# ex. MacOS
$ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version
Google Chrome 89.0.4389.82# Check the version of ChromeDriver
$ chromedriver --version
ChromeDriver 89.0.4389.23 (61b08ee2c50024bab004e48d2b1b083cdbdac579-refs/branch-heads/4389@{#294})
```Download chromedriver
https://chromedriver.chromium.org/downloads## Requirements
- jq
## Methods
Shellnium provides the following methods. See [document](https://shellnium-site.vercel.app) or [core.sh](https://github.com/Rasukarusan/shellnium/blob/master/lib/core.sh) for details.
### Session- is_ready
- new_session
- delete_session
- get_cookies
- set_cookies
- delete_cookies### Navigate
- navigate_to
- get_current_url
- get_title
- back
- forward
- refresh### Timeouts
- get_timeouts
- set_timeouts
- set_timeout_script
- set_timeout_pageLoad
- set_timeout_implicit### Element Retrieval
- find_element
- find_elements
- find_element_from_element
- find_elements_from_element
- get_active_element### Element State
- get_attribute
- get_property
- get_css_value
- get_text
- get_tag_name
- get_rect
- is_element_enabled### Element Interaction
- send_keys
- click
- element_clear### Document
- get_source
- exec_script
- element_screenshot
- screenshot### Cookies
- get_all_cookies
- get_named_cookie
- add_cookie
- delete_cookie
- delete_all_cookies### Context
- get_window_handle
- get_window_handles
- delete_window
- new_window
- switch_to_window
- switch_to_frame
- switch_to_parent_frame
- get_window_rect
- set_window_rect
- maximize_window
- minimize_window
- fullscreen_window## Article
English
https://dev.to/rasukarusan/shellnium-simple-selnium-webdriver-for-bash-1a9kJapanese
https://qiita.com/Rasukarusan/items/70a54bd38c71a07ff7bd## Example
```sh
$ sh demo2.sh
```
`demo2.sh` is required iTerm2 and Mac OS.This script is headless and display chromedriver's behavior as iTerm's background with AppleScript.
## Reference
- [WebDriver](https://www.w3.org/TR/webdriver/)
## LICENSE
MIT