因为Webdriver在进入下一行之前会等待整个页面加载,所以我认为禁用图像、css和javascript会加快速度。
from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
def disableImages(self):
## get the Firefox profile object
firefoxProfile = FirefoxProfile()
## Disable CSS
firefoxProfile.set_preference('permissions.default.stylesheet', 2)
## Disable images
firefoxProfile.set_preference('permissions.default.image', 2)
## Disable Flash
firefoxProfile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so',
'false')
## Set the modified profile while creating the browser object
self.browserHandle = webdriver.Firefox(firefoxProfile)
我从stackoverflowDo not want images to load and CSS to render on Firefox in Selenium WebDriver tests with Python得到了代码
但是当我加上
driver = webdriver.Firefox()
driver.get("http://www.stackoverflow.com/")
最后,它仍然加载图像:/
更新:自^{} became a frozen setting 以来,答案可能不再有效,并且无法更改。请尝试使用
quickjava
扩展名(链接到answer)。您需要将
firefox_profile
实例传递给webdriver
构造函数:这就是它的显示方式:
不幸的是,选项
firefox_profile.set_preference('permissions.default.image', 2)
将无法再使用最新版本的Firefox禁用图像-[原因请参阅Alecxe对我的问题的回答Can't turn off images in Selenium / Firefox]最好的解决方案是使用firefox扩展quickjava,它可以禁用图像-https://addons.mozilla.org/en-us/firefox/addon/quickjava/
我的Python代码:
还可以通过添加行来关闭其他功能:
接受的答案对我也不起作用。从kyrenia提到的“原因”链接中,我发现Firefox在第一次启动时会覆盖“permissions.default.image”首选项,我可以通过以下操作来防止这种情况:
这看起来没问题,因为我在每次驱动程序启动时都会创建配置文件,所以实际上没有什么要迁移的。
相关问题 更多 >
编程相关推荐