2012-12-19 3 views
1

저는 인터넷 검색을하고, SO를 검색하고, Selenium Javadocs를보고 있지만이 질문에 대한 답을 찾지 못했습니다.Selenium WebDriver를 통해 "공유 위치"브라우저 팝업을 허용합니다.

Selenium WebDriver를 사용하여 웹 사이트에서 위치를 추적하려고 할 때 브라우저 (Chrome, Firefox, IE)에 표시되는 "공유 위치"팝업을 수락 할 수 있습니까?

또한 Java로 Selenium 코드를 작성하고 Selenium Client 드라이버를 사용하고 있습니다.

Selenium IDE (Firefox 부가 기능)를 실행하고 Firefox 팝업이 나타나지만 "Selenium IDE"에 기록 된 "공유 위치"팝업을 수락하는 녹음을 시도했습니다.

+1

사용자가 위치 추적을 사용하도록 설정할 수있는 웹 사이트의 기능을 테스트하기위한 것입니다. – FilmiHero

답변

1

팝업이 브라우저의 일부인 경우 대답은 아니오입니다. 두 번째 창 (브라우저의 일부가 아님)에 표시된 것과 상호 작용하려면 예. .switch_to 메소드가 있어야합니다.

이 페이지에서 설정을 기억해도 브라우저의 새 인스턴스를 만들 때 프로필을로드 할 수 있습니다.

windows에서 시작 메뉴로 이동하여 "firefox.exe -p"를 입력하면 firefox에서 프로파일을 만들 수 있습니다. 여기서 "remember me 확인란"을 선택하면 새 프로파일을 만들 수 있습니다.

Java + Selenium에서 프로필을로드하는 한, 어떻게해야할지 모르겠습니다. 나는 Ruby + Selenium을 사용하는데 이것이 내가하는 방법이다.

$driver = Selenium::WebDriver.for :firefox, :profile => "MyProfile" 

희망이 내가 파이어 폭스이에 대한 해결책을 가지고 있지만, 여전히 크롬 작업 한

+0

감사합니다. 프로필을로드하는 것에 대해 자세히 설명해 주시겠습니까? 이게 내가 할 수있는 일이야? 나는 Selenium을 통해 프로그래밍 방식으로 위치 추적을 "받아 들일 수 없다면"테스트가 매우 유용하지 않기 때문에 프로필 로딩이 대답 일 것이라고 생각합니다. – FilmiHero

0

하는 데 도움이됩니다. 이것은 단지 (위의 코드에 대한) 바로 아래 드라이버 방법에 FirefoxProfile 인스턴스를 통과 한 후

ProfilesIni profile = new ProfilesIni(); 
    FirefoxProfile myprofile = profile.getProfile("default"); 
    myprofile.setPreference("geo.prompt.testing", true); 
    myprofile.setPreference("geo.prompt.testing.allow", true); 
    myprofile.setPreference("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"); 
    DesiredCapabilities capabilities = DesiredCapabilities.firefox(); 
    capabilities.setCapability(FirefoxDriver.PROFILE,myprofile); 

: 아래의 코드는 도움과지도에 정확한 위치를 가져올해야

driver = new FirefoxDriver(myprofile); 

을 그해야 괜찮아요, 당신이 원하는 모든 것을 쓰고 실행하십시오 !!

관련 문제