Skip to content

Instantly share code, notes, and snippets.

@raditotev
raditotev / selenium_grid_config.rb
Last active November 28, 2017 18:27
Cucumber configuration for SeleniumGrid
if ENV['REMOTE'].eql?("true")
hub_url = 'http://localhost:4444/wd/hub'
capabilities = Selenium::WebDriver::Remote::Capabilities.send(ENV['DRIVER'])
capabilities['version'] = ENV['VERSION']
capabilities['takesScreenshot'] = true
capabilities['javascriptEnabled'] = true
Capybara.register_driver :remote_browser do |app|
Capybara::Selenium::Driver.new(
app,
@raditotev
raditotev / wait_methods.rb
Last active August 10, 2018 18:54
Method for waiting all AJAX requests to finish
# Source: https://robots.thoughtbot.com/automatically-wait-for-ajax-with-capybara
def wait_for_ajax
Timeout.timeout(Capybara.default_max_wait_time) do
loop until page.evaluate_script('jQuery.active').zero?
end
end
def wait_for_page_to_load
Timeout.timeout(Capybara.default_max_wait_time) do
loop until page.evaluate_script('document.readyState === 'complete')
@raditotev
raditotev / capybara_waiting_methods.rb
Created December 3, 2017 19:29
Capybara waiting methods
# If you want to make sure there's exactly one
find(".active").click
# If you just want the first element
find(".active", match: :first).click
# All matching elements
find(".active", match: :first) # Wait for the first element
all(".active").each(&:click)
@raditotev
raditotev / gist:6fe9dac5be1b974eb12b823aad3b5d0b
Created October 10, 2018 08:16
Switching mysql version with Home Brew
# List available versions
$brew search mysql
# Install required version
$brew install mysql@5.6
# List running services
$brew services list
# Stop if mysql service is running
@raditotev
raditotev / settings.json
Created November 8, 2018 14:19
[VS Code] Go to step definition - open in new tab
{
"cucumberautocomplete.steps": [
"features/step_definitions/*.rb"
],
"cucumberautocomplete.syncfeatures": "features/*feature",
"workbench.editor.enablePreview": false
}
// Monorepo
{
@raditotev
raditotev / .rubocop.yml
Created November 13, 2018 11:10
Rubocop settings for test framework
# Run rubocop --auto-gen-config to generate config file
Metrics/AbcSize:
Enabled: false
Metrics/BlockLength:
Exclude:
- 'Rakefile'
- 'features/step_definitions/**/*'
Metrics/LineLength:
Enabled: false
@raditotev
raditotev / commands.sh
Last active December 10, 2018 11:17
Useful bash commands
# ssh-keys fingerprint
ssh-keygen -E md5 -lf <fileName>
# List open ports
netstat -ap tcp | grep -i "listen"
@raditotev
raditotev / setup_env.sh
Created November 24, 2018 10:46
Setup ruby automation tests environment (Mac only)
#!/bin/bash
if [[ $OSTYPE != "darwin"* ]]; then
echo "This script is for Mac machines only"
exit
fi
if ! type "rvm" > /dev/null; then
echo "Install RVM and Ruby"
if ! type "gpg" > /dev/null; then
# Compute file checksum - MD5, SHA1, SHA256 ...
certutil -hashfile z:\desktop\lsr.exe SHA512
@raditotev
raditotev / set-gnome-terminal
Created February 23, 2019 17:20
Setting gnome terminal position and size
Current session:
gnome-terminal --geometry=235x15+0+900
Set default position and size:
1. cp /usr/share/applications/gnome-terminal.desktop ~/.local/share/applications
2. sed -i 's/^Exec=gnome-terminal$/& --geometry=235x15+0+900/' ~/.local/share/applications/gnome-terminal.desktop
3. gsettings set org.gnome.desktop.default-applications.terminal exec 'gnome-terminal --geometry=235x15+0+900'