2012-12-19 64 views
1

我已經谷歌搜索,搜索到了,並看着Sevilla Javadocs,但還沒有找到這個問題的答案。通過Selenium WebDriver接受「共享位置」瀏覽器彈出窗口

有什麼方法可以使用Selenium WebDriver來接受瀏覽器(Chrome,Firefox,IE)顯示的那些「共享位置」彈出窗口,當一個網站試圖跟蹤您的位置?

此外,我正在用Java編寫Selenium代碼並使用Selenium客戶端驅動程序。

我試着運行硒IDE(火狐插件)和記錄我接受「共享位置」彈出窗口,火狐popsup但沒有被記錄於硒IDE。

+1

它用於測試網站的功能,允許用戶啓用位置跟蹤。 – FilmiHero

回答

1

如果彈出窗口是瀏覽器的一部分,那麼答案是否定的。如果你想與第二個窗口(不是瀏覽器的一部分)顯示的東西進行交互,那麼是的。應該有一個.switch_to方法。

但如果你可以在此頁面記住您的設置,當你創建瀏覽器的一個新實例,你可以加載配置文件。

在windows中,您可以通過轉到開始菜單並在此處輸入「firefox.exe -p」來創建一個新配置文件,您將在其中選中一個「記住我」複選框。

至於在Java + Selenium中加載配置文件,我不確定你會如何做到這一點。我使用Ruby + Selenium,這就是我的做法。

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

希望這有助於

+0

謝謝。你能告訴我更多關於加載配置文件嗎?這是我可以輕鬆Google嗎?我認爲加載配置文件可能是答案,因爲如果我無法通過Selenium以編程方式「接受」位置跟蹤,測試將不會非常有用。 – FilmiHero

0

我已經得到了解決這個在Firefox但對鉻仍在工作。下面的代碼應幫助並在地圖上獲取你的確切位置:

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); 

後,這只是通過FirefoxProfile例如在駕駛方法,就像下面(上面的代碼):

driver = new FirefoxDriver(myprofile); 

應沒問題,寫所有你想要的其他東西並執行!

相關問題