Jac*_*ack 11 javascript css python selenium selenium-webdriver
因为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)
Run Code Online (Sandbox Code Playgroud)
我从stackoverflow获取代码不希望加载图像和使用Python在Selenium WebDriver测试中在Firefox上渲染CSS
但是当我补充说
driver = webdriver.Firefox()
driver.get("http://www.stackoverflow.com/")
Run Code Online (Sandbox Code Playgroud)
到最后,它仍然加载图像:/
kyr*_*nia 18
不幸的是,该选项firefox_profile.set_preference('permissions.default.image', 2)将不再用于使用最新版本的Firefox禁用图像 - [原因请参阅Alecxe对我的问题的回答无法关闭Selenium/Firefox中的图像 ]
我最好的解决方案是使用firefox扩展quickjava,其中包括禁用图像 - https://addons.mozilla.org/en-us/firefox/addon/quickjava/
我的Python代码:
from selenium import webdriver
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.add_extension(folder_xpi_file_saved_in + "\\quickjava-2.0.6-fx.xpi")
firefox_profile.set_preference("thatoneguydotnet.QuickJava.curVersion", "2.0.6.1") ## Prevents loading the 'thank you for installing screen'
firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Images", 2) ## Turns images off
firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.AnimatedImage", 2) ## Turns animated images off
driver = webdriver.Firefox(firefox_profile)
driver.get(web_address_desired)
Run Code Online (Sandbox Code Playgroud)
其他东西也可以通过添加行来关闭:
firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.CSS", 2) ## CSS
firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Cookies", 2) ## Cookies
firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Flash", 2) ## Flash
firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Java", 2) ## Java
firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.JavaScript", 2) ## JavaScript
firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Silverlight", 2) ## Silverlight
Run Code Online (Sandbox Code Playgroud)
ale*_*cxe 17
更新:答案可能不再有效,因为permissions.default.image成为冻结设置,无法更改.请尝试quickjava扩展(链接到答案).
您需要将firefox_profile实例传递给webdriver构造函数:
from selenium import webdriver
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference('permissions.default.stylesheet', 2)
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)
driver.get('http://www.stackoverflow.com/')
driver.close()
Run Code Online (Sandbox Code Playgroud)
这就是它的显示方式:

| 归档时间: |
|
| 查看次数: |
11602 次 |
| 最近记录: |