Closed TheInvisibleRabbit closed 2 years ago
Nice! Out of curiosity, where can I read about "w3c" and "non-w3c" Chrome modes?
I'm struggling to find any "official" documentation about Chrome w3c mode.
Seems to be enabled/disabled through chromeOptions: https://bugs.chromium.org/p/chromium/issues/detail?id=1205107#c75.
I suspect that since chromedriver 91 w3c=true is the default as this is when get_attribute stopped returning properties.
Chrome webdriver implementation status available at https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/chromedriver_status.md - shows GET .../{element}/property/{name} is implemented but doesn't state what version from.
https://github.com/w3c/webdriver/ lists links to webdriver implementation status for various vendors. Not sure it's Arsenic's responsibility to know whether X webdriver implementation supports Y version of webdriver API.
User-selected webdriver either supports GET ../{element}/property/{name} or not - user shouldn't use get_property unless they think it's going to work with their selected webdriver.
Which version of chomedriver to use: https://chromedriver.chromium.org/downloads/version-selection
I think, we can recommend to match the chromedriver version to chrome... at least in general.
Looks like today the latest is LATEST_RELEASE_93.0.4577
According to https://bugs.chromium.org/p/chromium/issues/detail?id=1205107#c91 the change was done between versions 90
and 91
.
Background on the change: https://bugs.chromium.org/p/chromium/issues/detail?id=1205107#c25
The fist of the change appears to be:
Chromedriver versions 91+ in non w3c mode get_attribute no longer returns properties first before trying attributes.