2012-06-30 5 views
6

Dưới đây là kịch bản của tôi:Selenium: Tại sao phương thức get_cookies() của tôi trả về một danh sách bằng Python?

# -*- coding: UTF-8 -*- 
from selenium import webdriver 

driver = webdriver.Firefox() 

driver.get("http://www.google.com") 

all_cookies = driver.get_cookies() 

print all_cookies 

và kết quả in là:

>>> 
[{u'domain': u'.google.com.hk', u'name': u'PREF', u'value': u'ID=999c3b8cf82fb5bc:U=7d4d0968915e2147:FF=2:LD=zh-CN:NW=1:TM=1341066316:LM=1341066316:S=kDqT8587qbZJj1_B', u'expiry': 1404138316, u'path': u'/', u'secure': False}, {u'domain': u'.google.com.hk', u'name': u'NID', u'value': u'61=AbRSUZokdEP3hN79nLdNOWwlF7itUX9-pmFAIBb-ysJqvoi1NBsmOa2wV7ldWgXpYBd_OsPnMxaAPiRsJyCpVbCN882MWNn6DwNm9eD6PTKU2gfDfqrj2EJr6CNVUhI6', u'expiry': 1356877516, u'path': u'/', u'secure': False}] 
>>> 

Sự trở lại là một danh sách, nhưng nó phải là một cuốn từ điển.

+1

Một từ điển sẽ không là một lưu trữ thích hợp cho một jar cookie. Có thể có nhiều cookie có cùng tên nhưng tên miền/đường dẫn khác nhau. – ThiefMaster

Trả lời

9

Cookies chứa nhiều thông tin hơn so với chỉ đơn giản là tên và thông tin giá trị, ví dụ ngày hết hạn, tên miền, v.v. Do đó, một cặp khóa/giá trị đơn giản là không đủ. Nếu tất cả các bạn quan tâm đến CHỈ tên và giá trị tương ứng của nó, sau đó tôi muốn làm điều gì đó tương tự như sau để xây dựng từ điển của riêng bạn:

# -*- coding: UTF-8 -*- 
from selenium import webdriver 

driver = webdriver.Firefox() 
driver.get("http://www.google.com") 
cookies_list = driver.get_cookies() 
cookies_dict = {} 
for cookie in cookies_list: 
    cookies_dict[cookie['name']] = cookie['value'] 

print(cookies_dict)