Skip to content

Instantly share code, notes, and snippets.

View abotalov's full-sized avatar

Andrei Botalov abotalov

View GitHub Profile
@abotalov
abotalov / signup.feature
Created July 13, 2012 00:01
Google signup
Feature: Signup
In order to get access to protected sections of the site
As a user
I want to be able to sign up
Scenario: Signup with valid data
When I signup with valid data
Then I become signuped
Scenario: Signup with empty required field
@abotalov
abotalov / conftest.py
Created March 21, 2018 13:08
Pytest issue
from xdist.scheduler import LoadScopeScheduling
def pytest_xdist_make_scheduler(config, log):
return LoadScopeScheduling(config, log)
require "capybara"
require 'selenium-webdriver'
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
Capybara.register_driver :chrome do |app|
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => [ "start-maximized" ]})
Capybara::Selenium::Driver.new(app, {:browser => :chrome, :desired_capabilities => caps})
end
@abotalov
abotalov / test.rb
Created November 4, 2013 20:30
Attempt to reproduce issue from http://stackoverflow.com/q/19733271/841064
require "capybara"
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
sess = Capybara::Session.new(:selenium, app)
sess.visit("/")
sleep 1 # Just to verify that file isn't chosen
sess.attach_file('file_upload', '/tmp/temp.txt')
sleep 1 # Just to verify that file is chosen
@abotalov
abotalov / with_capybara.rb
Created August 19, 2013 22:33
Method that allows to run a couple of Capybara methods in a block. See http://stackoverflow.com/q/18293303/841064
require 'capybara'
class Capybara::Selenium::Driver
def browser
unless @browser
@browser = Selenium::WebDriver.for(options[:browser], options.reject { |key,val| SPECIAL_OPTIONS.include?(key) })
end
@browser
end
end
@abotalov
abotalov / test.rb
Created August 19, 2013 22:24
Capybara: quit browser manually, see http://stackoverflow.com/q/18293303/841064
require "capybara"
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
class Capybara::Selenium::Driver
def browser
unless @browser
@browser = Selenium::WebDriver.for(options[:browser], options.reject { |key,val| SPECIAL_OPTIONS.include?(key) })
end
require "capybara"
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
sess = Capybara::Session.new(:selenium, app)
sess.visit("/")
sess.find(:xpath,"//a[contains(text(),'Foo')]").click # Element looks like clicked after that
sleep 3
require 'capybara'
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
session = Capybara::Session.new(:selenium, app)
session.visit("/")
session.find('input[name=test]').set(false)
puts session.find('input[name=test]').value # returns 'on', regardless of whether true or false was set at previous row
@abotalov
abotalov / test.rb
Last active December 17, 2015 13:10
require 'capybara'
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
session = Capybara::Session.new(:selenium, app)
session.visit("/")
session.select("Alaska", :from => "last_address_used[state]") # works OK
__END__
@abotalov
abotalov / test.rb
Last active December 17, 2015 10:49
require 'capybara'
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
session = Capybara::Session.new(:selenium, app)
session.visit("/")
session.select("52", :from => "answer_sheet_test_prep_number") # element is selected properly
__END__