← Articles

Capybara webkit and HTTP basic auth

Sometimes the things that you assume will be simple and no problem at all will give you a challenge. Here I thought that doing HTTP basic auth would be easy with the Capybara webkit driver. It isn’t as easy as you might expect. I would have expected a authorize method of some sort but you have to actually set the header yourself. Since it took me some time to figure out I thought I’d just share this little snippet and safe someone else the trouble.

Capybara webkit and HTTP basic auth

basic = ActionController::HttpAuthentication::Basic
credentials = basic.encode_credentials('username', 'password')
page.driver.header('Authorization', credentials)
visit '/some/http-basic-auth-path'

That’s it. I’ll leave it up to you to include it in a helper or a before filter :-)

Suggestions, tips or flames? Please leave a comment. You can also hire me

Please share this post:
Thomas Cremers google+facebooktwitterstack overflow