2
因此,我使用splinter登录到站点,然后在登录后抓取cookie,然后将其保存为腌制对象以备后用。如何从先前保存的碎片实例中将碎片设置为碎片?
def save_cookie(username, password):
browser = Browser()
browser.visit("https://somesite.com")
browser.fill('username', username)
browser.fill('password', password)
login_button = browser.find_by_xpath('the_login_button_x_path')
login_button.click()
# make a file and save the pickled object.
file_Name = "the_cookie"
fileObject = open(file_Name,'wb')
pickle.dump(browser.cookies.all(verbose=True) ,fileObject)
fileObject.close()
# so file is saved.
# I take screen shot so that I know that the user is logged in.
browser.driver.save_screenshot('screenshot.png')
所以我希望能够保存Cookie数据,这样我可以在浏览器中分裂出来的另一个实例以后再次使用它()。这将允许我登录一次,而不是每次我想测试需要登录状态的页面时登录。
def visit_site_as_logged_in_user():
browser = Browser()
#open the previously pickled cookies object and load it
the_previously_saved_cookies = pickle.load(open("the_cookie", "rb"))
#set the cookies on this new browser instance
browser.cookies.add(the_previously_saved_cookies)
#visit the site
browser.visit("https://somesite.com")
# I take screen shot so that I know that the user is logged in.
browser.driver.save_screenshot('screenshot.png')
因此,我希望用户访问该网站,并在登录状态,因为我从一审以完全相同的饼干,把它应用到一个新的实例。我可能误解了如何分裂处理cookie。文件不是很具描述性。 http://splinter.readthedocs.org/en/latest/cookies.html
当我看屏幕截图,用户只是访问该网站,而不是在登录状态。