私はSeleniumを使ってWebサイトにログインし、urllib2を使ってRESTyリクエストを作成しようとしています。それがうまくいくためには、同じセッションセレンを使用するためにurllib2が必要です。セレンとでurllib2のセレンからのセッションクッキーを使用
ロギングは素晴らしい仕事をし、私は
self.driver.get_cookies()
を呼び出すことができますし、私はすべてのクッキーセレンのリストを持って知っている、そしてそれは、このような少し何かを探して終わる:
[{u'domain': u'my.awesome.web.app.local',
u'expiry': 1319230106,
u'name': u'ci_session',
u'path': u'/',
u'secure': False,
u'value': u'9YEz6Qs9rNlONzXbZPZ5i9jm2Nn4HNrbaCJj2c%2B...'
}]
私はurllib2の中にクッキーを使用するためにいくつかの異なる方法を試してみた
、私はこの1つは最高に見えると思う:
# self.driver is my selenium driver
all_cookies = self.driver.get_cookies()
cp = urllib2.HTTPCookieProcessor()
cj = cp.cookiejar
for s_cookie in all_cookies:
cj.set_cookie(
cookielib.Cookie(
version=0
, name=s_cookie['name']
, value=s_cookie['value']
, port='80'
, port_specified=False
, domain=s_cookie['domain']
, domain_specified=True
, domain_initial_dot=False
, path=s_cookie['path']
, path_specified=True
, secure=s_cookie['secure']
, expires=None
, discard=False
, comment=None
, comment_url=None
, rest=None
, rfc2109=False
)
)
opener = urllib2.build_opener(cp)
response = opener.open(url_that_requires_a_logged_in_user)
response.geturl()
それは動作しません。
最後にresponse.geturl()を呼び出すと、ログインページが返されます。
何か不足していますか?
問題を探すためにどのようにしたらよいでしょうか?
ありがとうございました。
オープナー= urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))から "cj"とは何ですか? –
'cj = cp.cookiejar'。元の質問のコードにあります。 – ronnefeldt