FirefoxDriver如何阻止弹出框
上一篇 /
下一篇 2012-06-09 17:01:33
/ 个人分类:Selenium-WebDriver
前两天
测试群一个朋友想要屏蔽测试网站加载后自动弹出的窗口(popup window ,比如
雅虎,搜狐网站自动弹出的广告), 运行的浏览器是Firefox. 大家知道,手动设置这个是在Options->Content下有个Block popup window选项,选中就可以
阻止弹出窗口了。但是在
FirefoxDriver是如何设置呢?
其实Mozilla有提供一个参数 dom.disable_open_during_load,在浏览器中输入about:config可以看到该参数的设置。但是在启动浏览器时使用下面的代码是会报错的,
FirefoxProfile fp = new FirefoxProfile();
fp.setPreference("dom.disable_open_during_load", true);
WebDriver driver=new FirefoxDriver(fp);
错误的信息就是告诉你 dom.disable_open_during_load这个参数不可改变。为什么这样。其实是FirefoxDriver在启动浏览器前将很多profile的参数固定了,放进一个ImmutableTable里面,不可以对其更改。 为了解决这个问题,我开始想到写一个自己的FirefoxProfile类来代替,但试了下没有成功(理论上应该是可以的,有兴趣可以再研究下)。然后我看了下源码,发现这些固定的参数都被放在一个json文件里面,这个文件在jar包的org/openqa/selenium/firefox下,文件名为webdriver.json,打开这个文件,把里面的dom.disable_open_during_load 一句删掉就可以使用上面的代码了,或者直接修改值为true。
PS:使用
Selenium做测试有段时间了,发现这工具还挺好用的,这是第一次在51testing上写博客,希望和测试同行们一起交流。
收藏
举报
TAG:
FirefoxDriver
阻止弹出窗口