有时候,我们打开一个网站,会弹窗显示,是否允许该网站发送通知。如果上过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自动化之前打开这个网站,看看这个设置是什么状态,然后自动化运行后,对比观察,看看是否从询问改成了禁用。