java - 如何使用 Selenium 和 Java 在 Chrome 中禁用 cookie
问题描述
我试图在测试开始时禁用 cookie。我尝试使用选项,但它不起作用。现在我正在使用
WebDriver driver = getDriver();
driver.get("chrome://settings/content/cookies");
WebElement element = driver.findElement(By.id("labelWrapper"));
但仍然无法选择任何选项。我收到一个元素不存在的错误,但是当我使用开发人员工具时,我可以看到它在那里。
我在用
- testCompile 组:“org.seleniumhq.selenium”,名称:“selenium-java”,版本:“3.141.59”
- testCompile 组:“org.seleniumhq.selenium”,名称:“selenium-chrome-driver”,版本:“3.141.59”
解决方案
首先解决方案
要在最近的Chrome浏览器上禁用 cookie,您需要如下setPreference()
属性:network.cookie.cookieBehavior
铬合金:
prefs.put("network.cookie.cookieBehavior", 2);
火狐:
profile.setPreference("network.cookie.cookieBehavior", 2);
历史
要使用Selenium在Chrome 浏览上下文中禁用 cookie,您可以使用对象来配置cookie,如下所示:Map
default_content_setting_values
2
put("profile.default_content_setting_values.cookies", 2);
实际上,您的代码块将是:
System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
Map<String, Object> prefs = new HashMap<String, Object>();
// Pass the argument 1 to allow and 2 to block
prefs.put("profile.default_content_setting_values.cookies", 2);
prefs.put("network.cookie.cookieBehavior", 2);
prefs.put("profile.block_third_party_cookies", True);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(options);
driver.get("https://www.google.com/");
推荐阅读
- node.js - 在节点 Js 中突破/绕过承诺链
- postgresql - Postgres 13 和故障转移槽
- css - 使用 css 设计 Blazor PWA 组件样式
- qt - 如何在 QWidget 内的所有组件上安装事件过滤器
- excel - Excel条件格式多个规则在数据输入后更改空白单元格
- json - 如何在 SwiftUI 中等待函数结束?
- python - 如何使用 Django 中另一个应用程序的访问令牌重定向到经过身份验证的视图?
- r - R:在data.table中创建公式列时如何动态引用列?
- spring-boot - 如何通过 docker exec 命令运行 Spring Boot 主类
- eclipse - 包含 apache.poi 5.0.0 的 Eclipse 更新站点