After updating chrome driver to ChromeDriver 91.0.4472.19
The value attribute have dissapeared from the input elements. Protractor cannot access the value attribute.
let x = await xDiv.getEl("#xInput").getAttribute('value');
// x = null
Using the Chrome Dev Tools, I am also not able to see the value attribute of any input element in the markup.
Using AngularJS 1.5.8 and Protractor/Selenium 3.141.59
The problem you described is actually a bug in chromedriver https://bugs.chromium.org/p/chromium/issues/detail?id=1205107. It happened because of the change in chrome browser related to W3C compliance
As you can see, the plan is to fix the bug, however it is still in progress.
Meanwhile, I recommend you 2 workarounds:
you can use chromedriver version 90. The latest version available is here https://chromedriver.storage.googleapis.com/LATEST_RELEASE_90.0.4430
I know that under normal circumstances this would throw incompatibility error, but somehow chromedriver 90 works with chrome 91.
You can downgrade chromedriver by running this command
webdriver-manager update --gecko=false --versions.chrome 90.0.4430.24
Note sometimes you have global, project local and Protractor specific installations of webdriver-manager. The command I gave will install chromedriver globally. In order to install locally you need to find the path to your webdriver-manager and run command like this
node ./node_modules/protractor/node_modules/webdriver-manager update --gecko=false --versions.chrome 90.0.4430.24
And some of you may need to run command in sudo mode. Keep it in mind
Instead of elem.getAttribute('value') try to go with browser.executeScript('return arguments[0].value', elem); multiple users claimed it works for them
Additionally, read this answer https://stackoverflow.com/a/67888592/9150146 that proposes more hacky solutions
Since the 7th of February all my tests are failing with the same error; the log entry reads:
RESPONSE MaximizeWindow unknown error: cannot get automation extension
from unknown error: page could not be found: chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html
(Session info: chrome=57.0.2987.21)
I'm not sure if this is caused by a Chrome update or something else - the message is vague enough as it is.
EDIT: I am using C#, and the latest Chromedriver.
You need the latest version of chromedriver.exe. https://sites.google.com/a/chromium.org/chromedriver/downloads
This is needed for chromedriver version 57+
I was having this same issue. Once I updated the chromedriver version everything worked again.
Suddenly got this error -> Additional information: unknown error: cannot get automation extension from unknown error: page could not be found: chrome-extension..
This issue exists even when using ChromeDriver 2.29
What solved it though was removing this line.
driver.Manage().Window.Size = new Size(1024, 768);
A quick fix but really not the one I've been looking for.
Would be great to still use the sizing mechanism.
This could probably because the environment where you are running the tests is blocking all the third party extensions in chrome browser. Give it a try with disabling the extensions.
something like below:
ChromeOptions o = new ChromeOptions();
o.addArguments("disable-extensions");
o.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(o);
As mentioned above, it's related to the chromedriver.
In the release notes of version 2.33, it's mentioned that they fixed an issue related to resizing/positioning.
Latest Release: ChromeDriver 2.33
Supports Chrome v60-62
Changes include:
Fixes a bug which caused Resizing/Positioning Window commands to fail on Chrome 62+.
Instead of downloading the chrome driver manually, it's better to update the version of chromedriver in package.json (or similar file) and fire npm install to get the latest version auto downloaded.
Try to use Webdrivermanager from
io.github.bonigarcia library
It will automatically load the latest version of your's webdriver and so you will not need to update it from time to time.
Just call for example:
ChromeDriverManager.getInstance().setup();
before calling the webdriver itself to get the latest version of ChromeDriver.
Updating your chrome driver exe would not actually fixed this issue, if you observed, it is happening while you're re-sizing chrome
driver.Manage().Window.Maximize();
Try to comment this line and try again.
It's a quick fix, I'll update my answer once I find the root cause of this(however it seems because of browser update as nothing was changed in code for me).
Update:
For me, it seems to be because of browser update as once I updated again this issue was gone.
I faced the issue, too. I have replaced the existing chrome driver which I had in my C folder with new chrome driver downloaded from https://sites.google.com/a/chromium.org/chromedriver/downloads, which resolved the issue.
I had the same issue. Just downloaded the latest release of chromedriver and that solved the problem.
https://sites.google.com/a/chromium.org/chromedriver/downloads
With the last headless version, you can't resize the window as there isn't any window anymore.
For my own case, I was experiencing this issue with behat, I used to resize the window with previous versions of chrome of firefox, I surround the following line:
$this->getSession()->resizeWindow(1600, 1200, 'current');
with a simple check on the driver:
if (($this->getSession()->getDriver() instanceof Selenium2Driver)) {
$this->getSession()->resizeWindow(1600, 1200, 'current');
}
I had started getting the same error in April, shortly after this question. I was able to get around it by installing a new beta version and starting like so:
webdriver-manager start --versions.standalone 3.0.0-beta4 --versions.chrome=2.28
This was working perfectly until a few days ago. I tried removing the offending setSize() from my Protractor conf file and it works again. But whenever my tests start, it also spawns another Chrome window navigated to chrome://settings/help. Weird.
I checked my Chrome update history and see it updated from v61 to v62 last week, so that must have broken it. I guess I need to update my driver once more.
Update: For those that want to quickly know how to update their driver:
webdriver-manager update --versions.chrome=2.33
Don't forget to specify the driver when starting the server.
Thanks
for this -- it helped me after so much R&D
cannot-get-automation-extension
ChromeOptions o = new ChromeOptions();
o.addArguments("disable-extensions");
o.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(o);
My issue got resolved post adding this comment, thankyou so much.
ChromeOptions o = new ChromeOptions();
o.addArguments("disable-extensions");
o.addArguments("--start-maximized");
o.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(o);
update your protractor and run your test cases it will start executing, there are few new stuff added from Protractor, this method worked for me.
update protractor - npm install -g protractor
update webdrvier - webdriver-manager update
it supports the higher versions of chrome driver 2.29.
pls. find the latest chrome drivers in http://www.seleniumhq.org/download/
Using webdriver 2.46 with firefox 41.0.1 is fine. Now I upgraded webdriver and firefox to 2.53 and 46.0. Lots of test scripts failed with updated one but those run successfully with old versions.
Anybody faces this issue? any idea?
We had the same issue. (selenium 2.53 and Firefox 46.0) It appears that with version 2.52 and 2.51, selenium corrects an overlapping(see below).But without that update, Firefox had more flexibility. It became more fragile with latest updates.
As you can see here:
https://github.com/SeleniumHQ/selenium/blob/master/dotnet/CHANGELOG
2.52 :
Updated Firefox driver to include ability to disable overlapping
element check. This includes a new constant for the name of the
capability.
2.51 : Updated Firefox driver which includes fixes for the clicking in
overlapped elements. In keeping with project support policy for
Firefox, This driver has been tested with Firefox 44 (current
release), 43 (immediately prior release), 38 (current ESR release),
and 31 (immediately prior ESR release).
They update the Firefox driver and makes him more fragile and make the user experience as realistic as possible(because the user can't click on something he didn't see ,of course).
I had version 2.47 and firefox 40 before, and like you, lot of test failed with new version.
The solution:
Make sure to scroll into the page to see the elements you want to click on or validate.If the element is at the bottom of the page and your element is under an other, try to hide the object over.
Use the JavascriptExecutor included in selenium package
to do your manipulations as shown here :
https://www.seleniumeasy.com/selenium-tutorials/scrolling-web-page-with-selenium-webdriver-using-java
Hope it helps
I'm working on an AngularJS web app using the ngbp framework (formerly ng-boilerplate) which by default uses AngularJS 1.2. The project is in early stages so we're experimenting with using AngularJS 1.3 instead of 1.2, as it has some nice features we'd like to make use of. We're also working under the assumption that AngularJS 1.3 will likely be the release version by the time we go live.
So I simply switched the AngularJS version number in the bower.json file and everything seems to work fine in Chrome, Safari, and Firefox except for when I enable strict dependency injection (ng-strict-di). When strict DI mode is on I get the error below (more detail here), but it only occurs in Chrome (FF & Safari both still work as expected).
Failed to instantiate module ng due to:
Error: [$injector:strictdi] function($provide) is not using explicit annotation and cannot be invoked in strict mode
http://errors.angularjs.org/1.3.0-build.3121+sha.a4520a7/...)
at http://localhost:8080/assets/ngbp-0.3.2.js:87:12
at annotate (http://localhost:8080/assets/ngbp-0.3.2.js:3352:17)
at Object.invoke (http://localhost:8080/assets/ngbp-0.3.2.js:4036:21)
at runInvokeQueue (http://localhost:8080/assets/ngbp-0.3.2.js:3964:35)
at http://localhost:8080/assets/ngbp-0.3.2.js:3973:11
at forEach (http://localhost:8080/assets/ngbp-0.3.2.js:338:20)
at loadModules (http://localhost:8080/assets/ngbp-0.3.2.js:3954:5)
at createInjector (http://localhost:8080/assets/ngbp-0.3.2.js:3894:11)
at doBootstrap (http://localhost:8080/assets/ngbp-0.3.2.js:1494:20)
at bootstrap (http://localhost:8080/assets/ngbp-0.3.2.js:1509:12
It seems that for some reason the angular source code itself is failing the strict DI test and thus won't load in the Chrome browser from within the ngbp framework. The above error comes from a fresh clone of ngbp with the only change being the version of AngularJS (1.3), not from our actual project (though the error is the same in both cases). I know that this version of ngbp doesn't officially support Angular 1.3 but as I said the app seems to work just fine with this change, even though it fails this test. I'm wondering if anyone might have some insight into what is causing this error and whether or not it would be ill-advised to proceed with this combination of AngularJS 1.3 and ngbp (version: 0.3.2)? Is there something else within ngbp that needs to be changed along with the version of AngularJS?
If it helps I'm serving up the files locally via cd ../bin; http-server -p 8080. If any other information would help just let me know and I'd be happy to provide it if possible.
Thanks for your time.
EDIT: If it helps I tested on OS X 10.9.4 with the following browser versions:
Chrome (Version 36.0.1985.143)
64-bit Chrome (Version 37.0.2062.94)
Firefox (31.0)
Safari (Version 7.0.5 (9537.77.4))
Looks like you might be using batarang, it does not work well with ng-strict-di. Try disabling batarang from google chrome developer tools and the app should start normally again.
[edit] AngularJS batarang now support ng-strict-di since v0.5.0. This error should no longer happen.
I have problems with invoking javaScript code on page with Opera 10 browser.
JavaScript code on page:
function CallMe(){
alert("It works!");
}
And I am invoking this code with:
HtmlPage.Window.Invoke("CallMe");
In all browsers except Opera this works great. In Opera I get error: "failed to invoke: CallMe"
What am I doing wrong?
Opera is not one of the supported browsers. See System Requirements tab on the Silverlight Install page
Opera's support for the plugin API (NPAPI) has had some issues that apparently made it different enough from other NPAPI-browsers to break some Silverlight functionality.
This should work in an upcoming Opera version (perhaps even in the next major release). Meanwhile, sorry to have caused you problems :-/