2013-06-04 2 views
2

, 나는 다음과 같은 방법으로 쿠키를 설정하려고 쿠키를 설정하지만 오이/카피 바라가/셀레늄 - 내 테스트 케이스를 들어

1)browser = Capybara.current_session.driver.browser 
    browser.manage.add_cookie :name => "xxx", :value => "cookie" 

2)driver = Capybara.current_session.driver 
    br = driver.browser.send(:bridge) 
    br.addCookie({ 
    'name' => "xxx", 
    'domain' => "localhost", 
    'value' => "cookie", 
    'path' => '/', 
    'expires' => (Time.now + 100.years).to_i 
    }) 

를 설정되지 않습니다되고 난 아무것도 그리워 알려줘 또는 난에이 다른 방법으로하십시오

+0

첫 번째 변형은 나에게 잘 어울립니다. '설정이 안된다 '는 말을 좀 더 자세히 설명해주세요. –

+0

제게는'page.driver.browser.manage.add_cookie()'라고 부릅니다. –

+1

그것은 실제 드라이버에 따라 다릅니다. http://stackoverflow.com/a/17244628/651651을 참조하십시오. – wrtsprt

답변

0

카피 바라가 먼저 테스트하는 웹 사이트를 방문해야합니다. 쿠키를 설정하기 전에 필요한 단계입니다.

이 작동 : 최상의 성능을 위해

visit '/' 
browser = Capybara.current_session.driver.browser 
browser.manage.add_cookie name: "name", value: "value" 

, 한 번만이 단계를 실행하거나, 쿠키가 이미 설정되어 있는지 중 하나. 다음은 쿠키 벽을 우회하는 cookieconsent 쿠키를 설정하는 실제 코드입니다.

browser = page.driver.browser 
unless browser.manage.cookie_named("cookieconsent") 
    visit '/' 
    browser.manage.add_cookie name: "cookieconsent", value: "dismiss" 
end 

나는 드라이버를 얻으려고 page.driver를 사용하고 있습니다. Capybara.current_session.driver과 같은 것입니다.

관련 문제