Selenium:如何使用firefox和python禁用图像加载?

oha*_*ain 10 python firefox selenium selenium-webdriver

我读过类似的问题,其中一个应该是答案,但是当我尝试它时,它只给出了部分解决方案.

我指的是问题:在Selenium Python中禁用图像

我的问题是我尝试了这个解决方案并且一些图像没有出现,但图像来自:

<img href="www.xxx.png"> 
Run Code Online (Sandbox Code Playgroud)

正在加载.有没有办法告诉firefox/selenium不要得到它?如果没有,有没有办法从我回来的dom元素中丢弃它,通过

self._browser.get(url)
content=self._browser.page_source
Run Code Online (Sandbox Code Playgroud)

例如,通过在dom树上做某种查找替换?

浏览器配置与上一个问题的浏览器相同:

    firefox_profile = webdriver.FirefoxProfile()
    # Disable CSS
    firefox_profile.set_preference('permissions.default.stylesheet', 2)
    # Disable images
    firefox_profile.set_preference('permissions.default.image', 2)
    # Disable Flash
    firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false')
    # Set the modified profile while creating the browser object
    self._browser = webdriver.Firefox(firefox_profile=firefox_profile)
Run Code Online (Sandbox Code Playgroud)

- - - - - - - - - - - - - - - - - - -更正 - - - - - - -------------------------

我继续挖掘,我学到的是那个,
如果我检查文本文件,selenium/firefox组合做了我看到它,它没有带来图像,然后保持链接.

但当我这样做时:

self._browser.save_screenshot("info.png") 
Run Code Online (Sandbox Code Playgroud)

我有一个24兆的文件加载了所有的img链接.
有人能解释一下这件事吗?
谢谢

And*_*rew 11

您可以使用以下代码禁用图像:

firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference('permissions.default.image', 2)
firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false')

driver = webdriver.Firefox(firefox_profile=firefox_profile)
Run Code Online (Sandbox Code Playgroud)

如果你需要阻止一些特定的网址...嗯...我认为你需要添加字符串:

127.0.0.1 www.someSpecificUrl.com 
Run Code Online (Sandbox Code Playgroud)

测试开始前到hosts文件,测试完成后删除它.

  • 它有效吗?我认为,它需要 False 而不是字符串“false”。它应该是布尔值。请建议。 (2认同)

Sal*_*lek 5

在最新的 Firefox 版本中permissions.default.image 无法更改。要禁用图像,请切换到 ChromeDriver 或使用此处建议的替代扩展。