Java+Selenium3方法篇40-谷歌浏览器设置提醒禁用

本文介绍了一种使用Selenium自动化脚本禁用网站通知请求的方法。通过设置Chrome浏览器选项,可以将通知权限从询问更改为禁止,避免了每次访问网站时出现的通知请求弹窗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       有时候,我们打开一个网站,会弹窗显示,是否允许该网站发送通知。如果上过facebook就应该见过这样的弹窗,那么我们是否可以通过自动化手段让这种弹窗禁用呢,默认状态是询问,我们需要把询问改成禁用。先看看正常网站打开通知询问弹窗。

      我们点击这个上面的叹号图片,可以看到通知这个设置,有询问,允许和不允许三种设置。直接来看看下面selenium脚本如何实现,设置成不允许。

package lessons;

import java.util.HashMap;
import java.util.Map;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class HandlePopup {
	public static void main(String[] args) throws Exception {
		
		System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
        
		// 创建HashMap类的一个对象
		Map<String, Object> prefs = new HashMap<String, Object>();
      
        // 设置提醒的设置,2表示block
		prefs.put("profile.default_content_setting_values.notifications", 2);

		ChromeOptions options = new ChromeOptions();

		options.setExperimentalOption("prefs", prefs);

        // 在 Chrome driver传入options设置
		WebDriver driver = new ChromeDriver(options);
		
		driver.get("http://scrolltest.com/");
		driver.manage().window().maximize();
		

	}

}
我在google上运行后,点击通知设置,看到的是默认改成了不允许的状态。

你可以用google自动化之前打开这个网站,看看这个设置是什么状态,然后自动化运行后,对比观察,看看是否从询问改成了禁用。

您可以使用Java Selenium和ChromeDriver来实现对谷歌浏览器进行抓包。下面是一个简单的示例代码: ```java import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.network.Network; public class ChromeNetworkCapture { public static void main(String[] args) { // 设置 ChromeDriver 路径 System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); // 创建 ChromeDriver 实例,并设置 ChromeOptions ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("w3c", false); ChromeDriver driver = new ChromeDriver(options); // 启动开发者工具 DevTools devTools = driver.getDevTools(); devTools.createSession(); // 开始抓包 devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())); // 进行相应的操作,执行页面访问等操作 // 结束抓包 devTools.send(Network.disable()); // 关闭浏览器 driver.quit(); } } ``` 以上代码首先设置 ChromeDriver 的路径,然后创建 ChromeOptions 对象,并设置 ExperimentalOption 为 "w3c",这是因为最新版本的 ChromeDriver 默认启用了 W3C WebDriver 协议,而抓包需要使用 DevTools 协议。 接下来,创建 ChromeDriver 实例,并获取 DevTools 对象。然后,调用 DevTools 的 createSession 方法来启动开发者工具会话。 在这个示例中,我们使用 Network.enable 方法来启用网络抓包,然后执行相应的操作。最后,调用 Network.disable 方法来停止抓包。 请注意,您需要根据您实际的 ChromeDriver 路径进行设置,并根据您的需求进行适当的修改和扩展。希望这可以帮助到您!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值