Hello StackOverflow用户我试图实现的是防止在我的测试打开主页时弹出恼人的帮助盒。到目前为止,这是我用来打开主页的方法:
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)
然而,在我运行测试后返回的是:
2014-07-23 15:38:19.453057: X Message: u'You may only set cookies for the current domain' ;
如何在实际加载基本测试域之前设置cookie?
答案 0 :(得分:15)
文档建议在设置Cookie之前导航到虚拟URL(例如404页面或图像路径)。然后,设置cookie,然后导航到主页面。
Selenium Documentation - Cookies
...您需要访问Cookie有效的域名。如果你 正在尝试在开始与网站交互之前预设Cookie ......另一种选择 在网站上找到一个较小的页面...... (http://example.com/some404page)
因此,您的代码可能如下所示:
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)