2016-11-14 10 views
2

org.openqa.selenium.firefox.FirefoxProfile의 인스턴스로 생성 된 프로필에 비밀번호를 추가 할 수 있습니까?FirefoxProfile을 만들고 저장된 암호를 전달할 수 있습니까?

모질라 문서 ( Profiles — Where Firefox stores your bookmarks, passwords and other user data)에서

, 내가 볼 수있는 두 개의 파일에서 파이어 폭스를 저장 암호 :

그러나 개별적으로 프로필에 암호를 추가 할 수 중 하나 FirefoxProfile 클래스에서 어떤 방법을 볼 수 없습니다, 또는 logins.json/key3.db가 같은 파일에 전달합니다. (연결된 모질라 페이지에서 아무것도 찾을 수 없습니다. 이것은 프로그래밍 방식이 아닌 일반 사용자로 비밀번호를 저장하는 것 같습니다.)

내 Selenium 테스트 스위트에서 필자는 Firefox 프로필을 바로 작성하고 있습니다.

http://user:[email protected]/example.html 

(I, 나는 전체 프로필을 작성하고 건네 줄 수가, 힘내에 그것을 추가 할 수 있습니다 알고 있지만 : 코드는하지만,이 같은 URL에로 (데브 서버에서 HTTP 기본 인증에 대한 예) 암호를 인코딩하는 데 가능하다면 피하고 싶습니다.)

+0

이 솔루션을 지원하려면 어떤 버전의 Firefox가 필요합니까? – MikeJRamsey56

+0

@ MikeJRamsey56, 필자의 작업 기계에는 FF47이 설치되어있어 그 이상이라고 말할 수 있습니다. 그냥 최신 버전으로 업그레이 드 드리겠습니다! – anotherdave

+1

47.0.1 이후의 Firefox 용 Selenium Java 지원은 geckodriver에 따라 다릅니다. Selenium V3.0.2가 필요합니다 (이 글을 쓰는 시점에서). geckodriver에는 문제가 있습니다. "Marionette과 geckodriver는 아직 완성되지 않았기 때문에 WebDriver 표준을 완벽하게 준수하거나 Selenium과 완벽하게 호환되지는 않습니다." 따라서 FF47은 최신 버전 일 수 있습니다. 내가 그걸로 놀아 보자. – MikeJRamsey56

답변

1

나는 selenium firefoxprofile code for v53.0을 통해 읽었으며 아무 것도 눈에 띄지 않았습니다. 그러나 copy those two files from the existing profile을 selenium이 작성한 기본 프로파일로 채울 수 있습니다. 실행할 때 당신은 당신이 (동적) 얻을 수있는 새로 생성 된 기본 firefoxprofile의 위치가 필요합니다

FirefoxProfile profile = new FirefoxProfile(); 
System.out.println(">> path to profile=" + profile.layoutOnDisk().getAbsolutePath()); 
// Copy the two files 
WebDriver driver = new FirefoxDriver(profile); 
+0

아직이 기능을 사용해 볼 기회가 없었지만 필요로하는 기능을 제공해야하는 것 같습니다. 당신이 API를 통해 그것을 할 수 없다는 수치. – anotherdave

0

예는 메뉴 버튼을 클릭 한 다음 ExitQuit을 클릭 파이어 폭스 프로필에 만들 수 있습니다. 참고 : -P, -p 또는 -ProfileManager를 사용할 수 있습니다 (그 중 하나라도 작동해야 함). Return 키를 누릅니다. Firefox 프로파일 관리자 (사용자 프로파일 선택) 창이 열립니다.

+0

안녕하세요, Amit, Profile Manager를 사용하여 수동으로 프로필을 만드는 대신 Selenium Java API를 통해 프로그래밍 방식으로 만든 프로필에 암호를 추가하는 방법을 묻는 질문에 답변했습니다. – anotherdave

+1

오, 미안 해요 @anotherdave –