【发布时间】:2019-01-03 18:30:55
【问题描述】:
我有一个 SVG 对象,它使用 d3-zoom 进行缩放和平移功能。它完美无缺,但是当我开始使用 Cypress.js 进行集成测试时,问题就出现了。
我尝试在svg 元素上使用标准鼠标事件来模拟拖动行为:
cy.get('svg')
.trigger('mousedown', { which: 1, force: true })
.trigger('mousemove', { position: 'left' })
.trigger('mouseup', { position: 'left', force: true });
上面的例子取自 Cypress drag and drop recipe,它在 nodrag.js 文件中产生以下错误:
无法读取未定义的属性文档
您可以在下面看到错误发生的位置(查看是undefined):
__webpack_exports__["default"] = (function(view) {
var root = view.document.documentElement,
...
我花了很多时间尝试以另一种方式触发事件,但没有成功 - 比如尝试使用上面的 sn-p 和 svg 容器。
请记住,我无法从赛普拉斯测试中访问任何 d3.js 包,因为它是作为 NPM 包导入到 React 应用程序中的。
提前感谢您的帮助!
【问题讨论】:
-
您能否提供一些示例——甚至是指向使用相同 API 的网页的链接,我们可以在其中对其进行测试?
标签: javascript d3.js svg cypress