2
ProfilesIni profile = new ProfilesIni();
FirefoxProfile ffprofile = profile.getProfile("default");//using firefox default profile
ffprofile.setPreference("permissions.default.image", 2); // this make ff to block web page images
WebDriver ff = new FirefoxDriver(ffprofile);    // executing firefox with specified profile 
ff.navigate().to("www.google.com");             // loading web page  



//codes for changing image blocking ???????????

加载某些网页后如何更改图像阻止?

4

3 回答 3

2

可以通过开发工具栏 CLI 在运行中修改首选项,但它可能会引入比加载图像更高的开销。这是 Python 示例:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains, Keys

ff = webdriver.Firefox()
ff.get('http//<URL>')

ac = ActionChains(ff)
# SHIFT+F2 opens dev toolbar
ac.key_down(Keys.SHIFT).send_keys(Keys.F2).key_up(Keys.SHIFT).perform()
# command to disable images
ac.send_keys('pref set permissions.default.image 2').perform()
ac.send_keys(Keys.ENTER).perform()
# command to disable flash
ac.send_keys('pref set plugin.state.flash 0').perform()
ac.send_keys(Keys.ENTER).perform()
# disable dev toolbar
ac.key_down(Keys.SHIFT).send_keys(Keys.F2).key_up(Keys.SHIFT).perform()
ac.key_down(Keys.SHIFT).send_keys(Keys.F2).key_up(Keys.SHIFT).perform()
# reload the page to confirm there are no images or flash
ff.refresh()
于 2015-03-26T14:44:25.123 回答
2

由于开发工具栏 CLI 对我不起作用(因为组合键不会打开 CLI),因此我如何设法更改正在运行的 firefox 实例的配置文件设置:

        IWebDriver driver = //your instance
        driver.Navigate().GoToUrl("about:config");
        driver.FindElement(By.Id("warningButton")).Click();
        IJavaScriptExecutor js = (IJavaScriptExecutor)driver;

        js.ExecuteScript("window.Services.prefs.setIntPref('permissions.default.image', " + 2 + ")");

它是 C#,但 Java 中的转换应该不会太难。这个想法是 about:config 选项卡声明了许多允许更改配置文件设置的 Javascript 对象,因此我们只需要进入该页面并执行一些 JS 代码。

于 2018-04-29T11:56:09.447 回答
-1

从命令行 firefox.exe -p 运行 firefox

之后创建一个新的配置文件,设置必要的设置并始终调用此配置文件。

FirefoxProfile ffprofile = profile.getProfile("profileName");
于 2014-05-27T13:54:25.927 回答