我想这应该工作:
from selenium import webdriver options = webdriver.ChromeOptions() options.add_experimental_option('same-site-by-default-cookies', 'true') driver = webdriver.Chrome(chrome_options=options)
启用为将来的chrome版本安排的samesite cookie限制。不是,有错误:
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: cannot parse capability: goog:chromeOptions from invalid argument: unrecognized chrome option: same-site-by-default-cookies
我可以使用chrome:// flags手动更改选项,然后查看它是否有效。但是,我想使其自动化,然后运行测试脚本来查看它。
这里有Java代码:https : //groups.google.com/forum/#!topic/ chromedriver-users/ cI8hj7eihRo 可以做到,但是我不确定如何将其传输到python。
有没有可用的参考资料,可以帮助我设置此选项或其他选项?
在Chrome上测试:版本79.0.3945.130(正式版本)(64位)
在Python中,您可以使用以下代码
chrome_options = webdriver.ChromeOptions() experimentalFlags = ['same-site-by-default-cookies@1','cookies-without-same-site-must-be-secure@1'] chromeLocalStatePrefs = { 'browser.enabled_labs_experiments' : experimentalFlags} chrome_options.add_experimental_option('localState',chromeLocalStatePrefs) driver = webdriver.Chrome(options=chrome_options) driver.get("https://www.bing.com")
Python Selenium客户端将发送以下功能
[1579581631.792][INFO]: Starting ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614}) [1579581631.792][INFO]: Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code. [1579581632.264][INFO]: [f6b8433509c420fd317902f72b1d102d] COMMAND InitSession { "capabilities": { "alwaysMatch": { "browserName": "chrome", "goog:chromeOptions": { "args": [ ], "extensions": [ ], "localState": { "browser.enabled_labs_experiments": [ "same-site-by-default-cookies@1", "cookies-without-same-site-must-be-secure@1" ] } }, "platformName": "any" }, "firstMatch": [ { } ] }, "desiredCapabilities": { "browserName": "chrome", "goog:chromeOptions": { "args": [ ], "extensions": [ ], "localState": { "browser.enabled_labs_experiments": [ "same-site-by-default-cookies@1", "cookies-without-same-site-must-be-secure@1" ] } }, "platform": "ANY", "version": "" } }
检查它是否实际工作。转到chrome:// flags /