selenium设置:浏览器不显示图片

想解决的问题:
跑selenium脚本时,会运行浏览器,浏览器会显示图片,而出于效率或者其他方面的考虑,我们并不希望显示图片。那这里怎么做呢?本文会向大家介绍方法,并且触类旁通,通过本文的办法,你会知道,怎么自定义浏览器的其他属性。

一、chrome driver是否设置浏览器属性
chrome driver是否支持对浏览器属性的定义?答案当然是YES
通过chrome driver的官方文档( http://code.google.com/p/chromedriver/wiki/CapabilitiesAndSwitches),可以看到,chrome driver可以支持的自定义属性,相当可观

注意到红框中的部分,这里说明,我们可以去定义chrome浏览器的原生属性,这些属性是保存在chrome的用户数据文件夹中的Preferences文件中的,只要是这个文件中定义的属性,我们都可以让chrome driver对其做重新设置。我们初步判断,“不加载图片“这一设置,是保存在这个文件中的,因此,接下来需要知道,在这个文件中,是怎么保存”不加载图片“这个属性的。


二、“不加载图片”对应preferences文件中哪个属性
1、找到Preferences
Preferences文件,一般位于用户文件夹\AppData\Local\Google\Chrome\User Data\Default,如下图所示


2、通过浏览器设置”不显示图片“
打开你的chrome浏览器,进入“设置”页面,选“显示高级设置”


3、对比设置前后Preferences的区别
做了这个修改后,会发现Preferences多了红框这几行,因此这几行配置,对应了“不显示图片”这个配置


三、初始化chrome driver(代码)
通过前面两个步骤,我们已经知道了,chrome是怎么在Preferences中保存配置的,下面就是将这个配置变成代码:在初始化WebDriver时,带上这个配置。
代码如下所示。要注意到,map中的值,是要和Preferences中的层级相对应的。
1、default_content_setting是在profile配置组中的,因此表达式是profile.default_content_settings
2、default_content_settings中imges是key值,2是value值

Map<String, Object> contentSettings = new HashMap<String, Object>();
contentSettings.put("images", 2);

Map<String, Object> preferences = new HashMap<String, Object>();
preferences.put("profile.default_content_settings", contentSettings);

DesiredCapabilities caps = DesiredCapabilities.chrome();
caps.setCapability("chrome.prefs", preferences);
WebDriver driver = new ChromeDriver(caps);

总结:本文虽然是介绍了“不显示图片”的方法,但chrome的其他属性,也可以通过同样的思路去设置。怎么样~!让我们更加灵活、自由地使用selenium把!

不同版本的chrome driver,使用上可能存在差异,这里提供我使用的chrome driver:
http://pan.baidu.com/share/link?shareid=2940223438&uk=1375814196

如果你对selenium不熟,欢迎查看旧文:《Selenium超简单入门》


Selenium是一个用于Web应用程序测试的工具,它支持自动化测试浏览器的行为。在Selenium中,你可以使用不同的语言编写测试脚本,比如Java、Python、C#等。点击图片加载显示通常是指在页面上找到一个图片元素,并通过点击该图片来触发某些事件,比如加载更多内容或者弹出图片。 在Selenium中实现点击图片加载显示的步骤一般如下: 1. 使用定位器找到页面上的图片元素。Selenium支持多种定位方式,如ID、Name、XPath、CSS选择器等。 2. 等待图片元素可点击,确保图片已经加载完成并且在页面上可见。 3. 使用点击操作来模拟用户对图片的点击行为。 4. 验证点击后的行为是否符合预期,比如页面内容的更新等。 以下是一个简单的代码示例,展示了如何在Python环境下使用Selenium点击图片: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 启动浏览器驱动,这里以Firefox为例 driver = webdriver.Firefox() # 打开目标网页 driver.get("http://example.com") # 定位到图片元素,这里假设图片的id为"image_id" image = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "image_id")) ) # 点击图片 image.click() # 可以添加更多的操作来验证页面的变化 # 关闭浏览器 driver.quit() ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值