shellnium
shellnium copied to clipboard
:dizzy: Selenium Webdriver for Bash (or Zsh).
Shellnium
Shellnium is the selenium WebDriver for Bash.
You can exec selenium simply on your terminal.
All you need is Bash or Zsh.
#!/usr/bin/env bash
source ./selenium.sh
main() {
# 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
![](https://shellnium-site.vercel.app/demo.gif)
Documentation
https://shellnium-site.vercel.app
If you learn by watching videos, check out this screencast by @gotbletu to explore shellnium
features.
Quick Start
# Run ChromeDriver before execute script
$ chromedriver
# execute script
$ sh demo.sh
You can add chrome options. e.g. --headless
.
$ sh demo.sh --headless --lang=es
Make sure you have the right version of ChromeDriver and GoogleChrome.
# 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})
Requirements
- jq
Methods
Shellnium provides the following methods. See document or 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
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-1a9k
Japanese https://qiita.com/Rasukarusan/items/70a54bd38c71a07ff7bd
Example
![](https://shellnium-site.vercel.app/demo2.gif)
$ 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
LICENSE
MIT