Skip to content Skip to sidebar Skip to footer

How Can I Sync The Html/session Used Between Django's 'client' And Selenium's Webdriver

I'm trying to test that logged in users can log out on my Django site with Lettuce, Selenium and lettuce_webdriver. In my terrain.py I have: @before.all def setup_browser(): pr

Solution 1:

I've not tried doing exactly what you are trying to do but I've done something similar. What you need to do is set a cookie like this on your Selenium instance after you've logged into your Django site with your Client instance:

driver.add_cookie({'name': 'sessionid', 'value': session_key})

The name should be equal to your SESSION_COOKIE_NAME setting on the Django site (sessionid is the default). You need to figure out the value of session_key.

You can obtain it from a Client instance like this:

session_key = client.cookies["sessionid"].value

Note that Selenium won't be able to set the cookie for some browsers if SESSION_COOKIE_SECURE is True. You should have this setting be True for your production server but if you want your Selenium tests to set your session cookie, then you have to make it False for testing.

Once your Selenium instance has the cookie, it will look to Django as if you had logged into it with Selenium. As I said, I do something similar in my test suites. (I use something else than Client but the principle is the same.)

Post a Comment for "How Can I Sync The Html/session Used Between Django's 'client' And Selenium's Webdriver"