httpseleniumhttp-authenticationsaucelabs

HTTP basic authentication URL with "@" in password


I'm trying to set up some selenium tests to our staging server using Sauce Labs. It's behind a basic http auth, so theoretically I could set the selenium URL to http://user:password@www.stagesite.com. However, the password contains a "@", causing all sorts of problems as you can imagine. I tried escaping it with a backslash but that did nothing from what I can tell.

So,

  1. is there an alternative way to do http authentication using selenium, i.e., not via the URL. Or,

  2. is there a way to use URL-based auth but somehow tell the browser that the "@" is part of the password?


Solution

  • You just need to encode special characters like that before passing them as part of the URL, so @ would need to be passed as %40, eg:

    https://user:password%40www.example.com
    

    (I typically use this - http://meyerweb.com/eric/tools/dencoder/ - for my en/decoding needs.)