首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chromedriver 76破坏了我的测试套件"javascript错误:循环引用“

Chromedriver 76破坏了我的测试套件"javascript错误:循环引用“
EN

Stack Overflow用户
提问于 2019-08-14 10:09:39
回答 4查看 4.1K关注 0票数 3

每当我尝试点击公司webapp上的任何元素时,我都会得到"javascript :循环引用(会话信息: chrome=76.0.3809.100)“。

这是在以前的chromedriver版本上运行良好的代码。

我尝试过与这里链接的“重复”问题中提到的解决方案,老实说,我认为这个问题被错误地标记为重复。

量角器: 6.0.0版(也在5.4.2上试用)

webdriver:使用全局安装版本12.1.6

Selenium服务器版本: 3.141.59

节点: v10.16.2

很明显是chromedriver_76.0.3809.12

我要运行的代码在这里

代码语言:javascript
复制
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);
    }
}

渔获物块捕获:

代码语言:javascript
复制
"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)"

这种情况发生在多台机器上。

不过,火狐似乎仍在工作。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-08-14 11:40:21

按照问题2995: javascript错误:使用ChromeDriver循环引用的规定,它的Chrome/ChromeDriver版本为76.0.3809.68。请试试76.0.3809.68。

更改日志:

代码语言:javascript
复制
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

编辑

“webdriver”的问题在于它没有下载最新版本的76.0.0版本。你必须自己安装问题- 408

代码语言:javascript
复制
npm install chromedriver --chromedriver_version=LATEST
票数 4
EN

Stack Overflow用户

发布于 2019-08-14 11:21:36

我也面临着同样的问题。

根据我的研究,这发生在ChromeDriver版本75.0.3770.8。https://sites.google.com/a/chromium.org/chromedriver/downloads

ChromeDriver 75.0.3770.8 支持Chrome版本75 最明显的变化是ChromeDriver现在默认以W3C标准兼容模式运行。

这意味着,他们已经在铬驱动程序中启用了W3C标准。要解决这个问题,要么需要在代码中修复循环引用错误,要么禁用W3C。对于某些禁用W3C,可以使用github的解决方案:https://github.com/angular/protractor/issues/5261

代码语言:javascript
复制
capabilities: {
  'goog:chromeOptions': {
  w3c: false
  }
}

不幸的是,这个解决方案并不适用于我。您可以尝试将此作为临时解决方案。

票数 0
EN

Stack Overflow用户

发布于 2019-08-19 22:44:23

看起来有人在webdriver中修复了这个问题,但是它还没有发布。我也遇到了同样的问题,并能够通过将此差异应用到我在node_modules:https://github.com/angular/webdriver-manager/pull/413/commits/6a95aa4187825d1293bda7c802f39257699095fc中的本地版本的webdriver中来解决它。

然后更新webdriver下载的最新版本,一切都正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57492625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档