J'obtiens maintenant "Erreur javascript: référence circulaire (Informations de session: chrome = 76.0.3809.100)" chaque fois que j'essaye de cliquer sur un élément de l'application Web de mon entreprise.
Ce code fonctionnait bien sur les versions précédentes de chromedriver
J'ai essayé les solutions mentionnées dans la question "Dupliquer" liée à ici , pour être honnête, je pense que cette question a été marquée en double par erreur.
Rapporteur: Version 6.0.0 (également essayée sur 5.4.2)
webdriver-manager: utilisation version globale installée 12.1.6
Version du serveur Selenium: 3.141.59
Nœud: v10.16.2
et évidemment chromedriver_76.0.3809.12
le code que j'essaie d'exécuter est ici
"JavascriptError: javascript error: circular reference (Session info: chrome=76.0.3809.100) at Object.throwDecodedError (c:\Users\%username%\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:550:15) at parseHttpResponse (c:\Users\%username%\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:560:13) at Executor.execute (c:\Users\%username%\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:486:26) at process._tickCallback (internal/process/next_tick.js:68:7)Error at ElementArrayFinder.applyAction_ (c:\Users\%username%\AppData\Roaming\npm\node_modules\protractor\built\element.js:459:29) at ElementArrayFinder.(anonymous function).args [as click] (c:\Users\%username%\AppData\Roaming\npm\node_modules\protractor\built\element.js:97:29) at ElementFinder.(anonymous function).args [as click] (c:\Users\%username%\AppData\Roaming\npm\node_modules\protractor\built\element.js:818:22) at UserContext.it (c:\Users\%username%\Development\test-automation\Repo\Cloud\UK Tax\HMRC Test Cases 2018-19\hmrcTestCase001\spec01.js:173:28)"
le bloc catch attrape:
async function clickElemByID(strID){ await browser.sleep(15000); var testElem = element(by.id(strID)); try { await testElem.click();//throws "Failed: javascript error: circular reference" } catch (e) { console.log(e); } }
Cela s'est produit sur plusieurs machines.
Firefox semble toujours fonctionner
4 Réponses :
Je suis également confronté au même problème.
D'après mes recherches, cela s'est produit à partir de la version 75.0.3770.8 de ChromeDriver. https://sites.google.com/a/chromium.org/chromedriver/ téléchargements
ChromeDriver 75.0.3770.8
Prend en charge la version 75 de Chrome
Le changement le plus notable est que ChromeDriver fonctionne désormais avec la norme W3C mode conforme par défaut.
Cela signifie qu'ils ont activé la norme W3C dans le pilote chrome. Pour résoudre ce problème, l'erreur de référence circulaire doit être corrigée dans le code ou désactiver le W3C. Pour certains, la désactivation du W3C a fonctionné avec la solution du problème github: https://github.com/angular/protractor/issues/5261 p >
capabilities: { 'goog:chromeOptions': { w3c: false } }
Malheureusement, cette solution ne fonctionne pas pour moi. Vous pouvez essayer ceci comme solution temporaire.
Selon Problème 2995: erreur javascript: référence circulaire avec ChromeDriver Son corrigé dans la version 76.0.3809.68 de Chrome / ChromeDriver. Veuillez essayer avec 76.0.3809.68. Modifier les journaux: Modifier Il y a un problème avec 'webdriver- manager 'il ne télécharge pas la dernière version de la v76.0.0. Vous devrez l'installer vous-même issue - 408 npm install chromedriver --chromedriver_version=LATEST
ChromeDriver 76.0.3809.68
Supports Chrome version 76
Includes the following changes over version 76.0.3809.25:
Fixed a bug in detecting circular reference in JavaScript objects
MERCI! L'installation de la nouvelle version était un peu plus difficile pour moi, cependant, elle utilisait par défaut l'ancienne version utilisée avec rapporteur, même lorsque je faisais glisser le nouveau binaire chromedriver dans ce dossier. En fin de compte, j'ai dû renommer chromedriver_76.0.3809.68.exe en chromedriver_76.0.3809.12.exe pour, faute d'un meilleur mot, l'amener à utiliser le plus récent. "8 Specs, 0 Failures", vue pour les yeux endoloris
On dirait que quelqu'un a corrigé ce problème dans webdriver-manager mais il n'a pas encore été publié. J'ai eu le même problème et j'ai pu le résoudre en appliquant ce diff à ma version locale de webdriver-manager dans node_modules: https://githubull.com/angular/webdriver-manager/pull/ 413 / commits / 6a95aa4187825d1293bda7c802f39257699095fc
Ensuite, la mise à jour du pilote Web a téléchargé la dernière version et tout a fonctionné.
Comme mentionné par d'autres, il y a un problème avec 'webdriver-manager' qui ne télécharge pas la dernière version de la v76.0.0. même si vous spécifiez la version exacte en donnant la mise à jour de webdriver-manager --versions.chrome 76.0.3809.68, elle pointe toujours vers le chrome 76.0.3809.12. seul le nom est changé mais le fichier a la version chrome 76.0.3809.12 seulement je pense
et comme mentionné par Rahul L.
solution rapide: installer chromedriver via npm - v76.0.1
https://www.npmjs.com/package/chromedriver
mais un hic ici est que le rapporteur pointe toujours vers le chromedriver par défaut fourni avec la mise à jour de webdriver-manager, donc l'ajout du package seul ne suffit pas, nous devons ajouter des valeurs dans le fichier de configuration pour surmonter ce senario, nous pour écraser le chemin de référence chromedriver dans le fichier de configuration avec ces valeurs
export.Config = { DirectConnet:true, chromeDriver: process.cwd()+'/node_modules/chromedriver/lib/chromedriver/chromedriver.exe',