2013-12-12 2 views
1

watir-webdriver 및 browser.cookies.clear를 사용하여 쿠키를 지울 수 없습니다. 다른 대안이 있습니까?browser.cookies.clear를 사용하여 쿠키를 지울 수 없습니다.

+0

나뿐만 아니라 카피 바라에서 쿠키를 제거하는 문제가 있었다 저장 및 다음 포스트 내 문제를 해결하기 위해 나에게 도움이된다 : [카피 바라 테스트에서 쿠키 (모두 지우는 방법 Selenium and Rack :: Test)] (http://makandracards.com/makandra/16117-how-to-clear-cookies-in-capybara-tests-both-selenium-and-rack-test) – katranci

+0

문제를 조사한 후 나는 쿠키가 쿠키를 사용하여 제거되고 있다는 것을 알아 냈습니다. 명백한 방법 그러나 문제는 제가 외부 사이트 (페이스 북)에 내 테스트 사이트를 통해 로그인하고 있다는 것입니다. 따라서 cookies.clear 메서드는 내 도메인에서만 작동하며 외부 웹 페이지에서 쿠키를 지울 수 없기 때문에 테스트가 실패합니다. 나는 외부 사이트에 가서 각 시나리오 후에 쿠키를 지우고 일을 끝냈다.하지만 정말 더러운 속임수를 쓰고 내 테스트를 어렵게 만들 것이다. 더 좋은 아이디어? – Vamsi

+0

안녕하세요. 브라우저 문제 일 수 있습니다. 브라우저 및 보석을 업데이트하려고합니다. – unknownbits

답변

3

이것은 보안 및 개인 정보 보호에 대한 우려 때문에 브라우저 기반의 제한 사항을 알고있는 한 있습니다.

Webdriver가 javascript로 브라우저와 상호 작용하고 있으며 javascript가 모든 쿠키를 지우는 것을 허용하지 않습니다 (악성 사이트에있을 수 있음). 비 테스트 환경에서, 실행중인 대부분의 JS는 액세스하고있는 사이트의 서버에서 왔습니다. 따라서 허용되는 최대 금액은 '현재 도메인'에 대한 쿠키를 삭제하는 것입니다. 쿠키는 현재 URL에 속합니다. 따라서 웹 페이지가 자신의 모든 쿠키를 지우려면 OK이지만 다른 도메인에 속한 쿠키는 지울 수 없습니다.

그래서 당신은 모든 테스트 신선한 쿠키를 시작하려는 경우, 당신은 다음 해당 사이트의 루트로 이동하고 env.rb 섹션은 클리어 '하기 전에'쿠키 뭔가가 필요합니다

BTW 동일한 설정이 쿠키 설정에 적용됩니다. 특정 사이트에 대한 쿠키를 만들려면 해당 사이트를 생성하기 전에 해당 사이트로 이동해야합니다. 그렇지 않으면 아무 것도 생성되지 않습니다.

0

이것은 답변이 아니지만 참고로만 제공됩니다.

크롬이 선택한 브라우저라고 가정하면 오이가 실행 중일 때 ps -ef | grep chrome의 출력에서 ​​아래와 같은 사용자 정의 사용자 데이터 디렉토리를 찾을 수 있습니다.

--user-data-dir=/tmp/.org.chromium.Chromium.G2DgPo 

그리고 그 디렉토리 안에

, 우리는 Default 폴더에 저장된 Cookies 파일을 찾을 수 있습니다.

해당 데이터베이스 파일을 직접 삭제하면 필요를 충족시킬 수 있는지 없는지 확실하지 않습니다. 일반 브라우저 세션의 원인은, 같은 런타임 데이터는

~/.config/google-chrome/Default/Cookies 
관련 문제