3
votes

Chromedriver 76 casse ma suite de tests "Erreur javascript: référence circulaire"

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


0 commentaires

4 Réponses :


0
votes

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.


0 commentaires

4
votes

1 commentaires

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



0
votes

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é.


0 commentaires

0
votes

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',


0 commentaires