2

ホストではなく、ドメインまたは Web サイト全体で Cookie を作成しようとしています。

私は今このコードを持っています

driver.manage.add_cookie(:name => 'test', :value => 'testvalue', :path => '/', :secure => false)

私はこのようなものが欲しい

name=test
value=testvalue
domain=.site.com
path=/

私はFirefoxのクッキーダイアログでそのような結果を得ています

ここに画像の説明を入力

このようなものが欲しい間

ここに画像の説明を入力

Host:私の場合は空であり、別の場合はそれが置き換えられていることがわかります。Domain: これが私が達成したいことであり、Cookieドメインをに設定します.mydomain.com

現在のドメインスコープの外側にあるものを読み取ることができないため、JavaScript がドメイン固有の Cookie を読み取ることができるようにするために、これを実現したいと考えています。

4

2 に答える 2

3

JavaScriptを使用して以下のようにできます。

require "selenium-webdriver"
require "awesome_print"

driver = Selenium::WebDriver.for :firefox
driver.navigate.to "http://example.com"

COOKIE_DOMAIN = <<-eotl
var cookieName = arguments[0];
var cookieValue = arguments[1];
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + encodeURIComponent(cookieValue)
                  + ";expires=" + myDate 
                  + ";domain=.example.com;path=/";
eotl

driver.execute_script(COOKIE_DOMAIN,'test','testvalue')
ap driver.manage.cookie_named('test')

出力

{
       :name => "test",
      :value => "testvalue",
       :path => "/",
     :domain => ".example.com",
    :expires => #<DateTime: 2014-09-09T07:43:12+00:00 ((2456910j,27792s,999999924n),+0s,2299161j)>,
     :secure => false
}
于 2013-09-09T07:12:47.807 に答える