You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Protractor TypeScript拖拽操作报错求助:类型不匹配ILocation

解决Protractor拖拽操作中的TypeScript类型错误

这个问题我之前也踩过类似的坑,咱们快速把它搞定!

错误原因分析

你代码里传给mouseDown和mouseMove的坐标参数是字符串格式的'{x: 191, y: 56}',但Protractor的ILocation类型要求的是一个包含x、y数字属性的普通JavaScript对象。TypeScript的类型检查器严格校验参数类型,发现字符串和ILocation的结构完全不匹配,所以抛出了这个ts(2345)类型错误。

修正后的代码

只需要把坐标参数的引号去掉,直接传递纯对象就可以了:

browser.actions()
  .mouseDown(element(by.id('waze_map1')), {x: 191, y: 56})
  .mouseMove(element(by.id('waze_map1')), {x: 540, y: 504})
  .mouseUp()
  .perform();

额外小提示

  • 这种写法是相对于目标元素左上角的偏移坐标,如果需要使用绝对屏幕坐标,可以省略第一个元素参数,直接传坐标对象(比如mouseMove({x: 540, y: 504}))。
  • 如果还是有类型相关问题,可以检查下@types/protractor的版本,旧版本的类型声明可能存在兼容性问题,执行npm install @types/protractor --save-dev更新即可。

内容的提问来源于stack exchange,提问作者SeanRay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:21:02