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 阻止弹出窗口

引用 删除 qd_pudding   /   2012-06-12 14:15:13
群里的那个朋友就是我呀,呵呵再次感谢!!!
 

评分:0

我来说两句

我的栏目

日历

« 2024-05-17  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 1935
  • 日志数: 2
  • 建立时间: 2012-06-09
  • 更新时间: 2012-07-12

RSS订阅

Open Toolbar