2012-12-19 63 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); 

应没问题,写所有你想要的其他东西并执行!

相关问题