-
Notifications
You must be signed in to change notification settings - Fork 116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Chromedriver v91 regression: applying .getAttribute('value') on elements with tag name 'input' returns null instead of actual value #497
Comments
Related issue for Protractor: angular/protractor#5519 |
Also this looks like a duplicate of #496. Related Chromium bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1205107 |
Thanks for the reference @Splaktar ! |
It looks like Chromium bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1205107 been fixed but webdriver-manager is still installing the wrong version. Here is the curl command I am seeing. curl -o ...\node_modules\protractor\node_modules\webdriver-manager\selenium/chromedriver_91.0.4472.101.zip https://chromedriver.storage.googleapis.com/91.0.4472.19/chromedriver_win32.zip So it looks like it is downloading 91.0.4472.19 but calling it chromedriver_91.0.4472.101 |
Having the same issue, here's what we're seeing on CI Running Getting |
I am also facing the same issue for linux driver. Running the following npm script
Getting Workaround:
This way I can run e2e's locally but of course it is still a blocker for CI, as it runs |
I did something similar in CI (CodeShip) where I copy the chromedriver from the VM into
|
The problem is when webdriver is asked to install 91.0.4472.101 it actually installs 91.0.4472.19 of chromedriver. The reason is when webdriver-manager is installing a specific version of Chromedriver - in this case 91.0.4472.101 - it downloads The last part of this array looks like this:
Notice that in the data that 91.0.4472.101 is before 91.0.4472.19. It is in that order in the XML. Webdriver-manager walks through the items looking for each that match the FIRST THREE parts of the version. In this case 91.0.4472. When it matches one it saves it as the one to use and keeps looking. In this case it matches 2 entries .91.0.4472.101 and 91.0.4472.19. Because 19 (the older version) is in the array after 101 (the newer) version - then 19 is selected and downloaded. I expect it is this way assuming that newer versions are always after older versions in the file. If webdriver checked that it was not replacing a newer version with an older version then this would not happen. I made a local change to my installed webdriver and it then downloaded the correct version and the problem went away. |
To verify the problem, delete the selenium folder under webdriver-manager (node_modules/protractor/node_modules/webdriver-manager/selenium) and perform the webdriver-manager update. In my case I see this line in the output: It is downloading 91.0.4472.19 but calling it 91.0.4472.101. Either webdriver-manager needs to be smarter to not use an older version over a newer version (checking all 4 parts of the version) - or - the XML files returned from https://chromedriver.storage.googleapis.com/ needs to return the items in version order and not just alphabetical order. |
In the chromedriver ticket for this a member of the Chrome team said this:
From the document on downloading the correct version of chromedriver it would seem the best change would be to remove the xml logic and change to the algorithm in getSpecificChromeDriverVersion to follow the chromedriver documentation:
|
Same here under linux too
|
@andrevechina created a PR which should solve the issue: #498 |
First spotted on June 2nd.
chromedriver_91.0.4472.19
Downgraded back to chromedriver_90.0.4430.24 to get the value returned properly.
The text was updated successfully, but these errors were encountered: