Skip to content

Instantly share code, notes, and snippets.

View joey-g's full-sized avatar

Joey Gryder joey-g

View GitHub Profile
@joey-g
joey-g / cat.rb
Created February 6, 2015 19:39
Automation Training - Cat Class
# The class 'Cat' defines the blueprint of what an instantiated Cat
# object will eventually look like. In this case, a Cat object would
# have two attributes (name and color), and one function (or verb) that
# can be called on that object (eat_food).
class Cat
# Attributes that describe the Cat class.
attr_reader :name
attr_reader :color
@joey-g
joey-g / property_detail_attributes.rb
Created February 9, 2015 14:50
Script for pulling window.bt.listings.models attributes.
# Helper for accessing window.bt.listings.models object on page. Uses detail_attribute
# param to access specific field on found property's details object.
def property_detail_attribute(detail_attribute)
detail_script = <<-CMD
matched_property =
$.grep(window.bt.listings.models,
function(m) {
return m.id == #{@property_id};
})[0];
if (matched_property) {
@joey-g
joey-g / object_examples.rb
Created February 13, 2015 16:33
Automation Training Week 2
# McDonalds Example --------------------------
class McDonalds
def initialize(location)
@location = location
end
def get_location
return @location
@joey-g
joey-g / ancestor_descendant.html
Created February 20, 2015 16:42
Automation Training Week 3
<!--
In the example below, attempting to access the individual input element in
the second div is possible using an ancestor/descendant selector. If we
only selected the input with the class "test_class" with:
document.querySelector('input.test_class');
We wouldn't be guaranteed to receive a unique element, as this selector
would match both input elements.
@joey-g
joey-g / webdriver_api_example.rb
Created February 20, 2015 16:46
Automation Training Week 3
# WebDriver API Examples
driver = WebDriver.new('Chrome')
# Example of sending keystrokes to an input field.
input_el = driver.find_element(<some_input_selector_goes_here>) # <-- Returns an instance of the WebElement class.
input_el.send_keys('Hey') # <-- Sends keystrokes to the retrieved input WebElement object.
# Example of clicking a button.
button_el = driver.find_element(<some_button_selector_goes_here>) # <-- Returns an instance of the WebElement class.
button_el.click() # <-- Clicks the retrieved button WebElement object.
@joey-g
joey-g / google_search_example.rb
Created March 2, 2015 17:39
Automation Training Week 4
require 'selenium-webdriver'
begin
driver = Selenium::WebDriver.for :chrome
driver.get 'http://google.com'
search_input_field = driver.find_element(:id => 'lst-ib') # Returns an instance/object of the WebElement class.
search_input_field.send_keys('Ryan Buff')
ensure
driver.quit
@joey-g
joey-g / todo_items.rb
Created March 27, 2015 16:49
Automation Training Week 8
class TodoItem
attr_reader :name
attr_accessor :status
def initialize(arg1)
@name = arg1
@status = false
end
@joey-g
joey-g / svc.rb
Created February 17, 2017 04:41
Modular Sinatra
require 'sinatra/base'
require 'rack'
# http://recipes.sinatrarb.com/p/embed/event-machine
class WebService < Sinatra::Base
def initialize(test_obj)
super()
@test_obj = test_obj
end
@joey-g
joey-g / headless-wd-example.es6
Last active April 26, 2024 23:17
Headless Chrome - WebDriver Example
// https://developers.google.com/web/updates/2017/04/headless-chrome
const fs = require('fs');
const {Builder, By, Capabilities, Key, until} = require('selenium-webdriver');
const chromedriver = require('chromedriver');
const chromeCapabilities = Capabilities.chrome();
chromeCapabilities.set('chromeOptions', {args: ['--headless']});
async function test() {
// Note: On macOS, you'll likely see a new Chrome process flash on your 'Dock'
// when this new driver object is built. As it's launched headlessly, it's
@joey-g
joey-g / control_ecs_asg.py
Last active February 28, 2018 17:57
ECS/ASG Startup Script
import boto3
import sys
import time
# Script param validation.
def validate_params():
param_error_found = False
if len(sys.argv) < 3:
param_error_found = True
if sys.argv[1].lower() not in ['qa0', 'qa1', 'qa2', 'qa3', 'qa4', 'qa5', 'qa6', 'qa7', 'qa8', 'qa9', 'qa10']: