Hello fellow StackOverflow users. What I am trying to achieve is prevent annoying helper boxes from popping up when my tests open the main page. So far this is the method I am using to open the main page:
def open_url(self, url):
"""Open a URL using the driver's base URL"""
self.webdriver.add_cookie({'name' : 'tour.index', 'value' : 'complete', 'domain' : self.store['base'] + url})
self.webdriver.add_cookie({'name' : 'tour.map', 'value' : 'complete', 'domain' : self.store['base'] + url})
self.webdriver.get(self.store['base'] + url)
However, what returns after I run the test is this:
2014-07-23 15:38:19.453057: X Message: u'You may only set cookies for the current domain' ;
How can I set the cookie before I actually load the base testing domain?
Navigate to the chrome settings page with Selenium by executing the driver. get('chrome://settings/clearBrowserData') . Click on the Clear Data button to clear the cache.
Using Selenium WebDriver API, we can query and interact with browser cookies with the help of following WebDriver's built-in methods. Get Cookies: This statement is used to return the list of all Cookies stored in web browser. manage(). getCookies();
The documentation suggests navigating to a dummy url (such as a 404 page, or the path to an image) before setting the cookies. Then, set the cookies, then navigate to your main page.
Selenium Documentation - Cookies
... you need to be on the domain that the cookie will be valid for. If you are trying to preset cookies before you start interacting with a site ... an alternative is to find a smaller page on the site ... (http://example.com/some404page)
So, your code might look like this:
def open_url(self, url):
"""Open a URL using the driver's base URL"""
dummy_url = '/404error'
# Or this
#dummy_url = '/path/to/an/image.jpg'
# Navigate to a dummy url on the same domain.
self.webdriver.get(self.store['base'] + dummy_url)
# Proceed as before
self.webdriver.add_cookie({'name' : 'tour.index', 'value' : 'complete', 'domain' : self.store['base'] + url})
self.webdriver.add_cookie({'name' : 'tour.map', 'value' : 'complete', 'domain' : self.store['base'] + url})
self.webdriver.get(self.store['base'] + url)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With