Skip to content

Instantly share code, notes, and snippets.

@twalpole
Created March 22, 2017 04:11
Show Gist options
  • Save twalpole/1e0a03fed779076994338b1ee6dec692 to your computer and use it in GitHub Desktop.
Save twalpole/1e0a03fed779076994338b1ee6dec692 to your computer and use it in GitHub Desktop.
require "capybara/dsl"
require "capybara/poltergeist"
require "selenium/webdriver"
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
Capybara.register_driver :marionette do |app|
Capybara::Selenium::Driver.new(
app,
browser: :firefox
)
end
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(
app,
browser: :chrome
)
end
[:poltergeist, :marionette, :chrome].each do |driver|
begin
sess = Capybara::Session.new(driver, app)
puts driver
sess.visit("/")
puts sess.current_url
sess.evaluate_script('window.history.pushState({foo: "bar"}, "page 3", "bar2.html");')
puts sess.current_url
end
end
__END__
<!doctype html>
<html>
<head>
<title>Some title</title>
</head>
<body>
<input id="test"/>
<a href="/">Click me</a>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment