Appium pinch 的问题

wensj · 2014年12月12日 · 最后由 思寒_seveniruby 回复于 2014年12月15日 · 1312 次阅读

错误信息:
point is not within the bounds of the screen (Selenium::WebDriver::Error::JavascriptError)

环境:
appium 1.3.3
ruby_lib 4.1.0

测试对象:
appium 的 iOS demo app TestApp

尝试对 UIAMapView 做 pinch 操作,UIAMapView 的 location 是 {35,83},size 是{250,250},使用 TouchAction 去模拟 pinch,代码如下:
map = find_element :xpath,"//UIAMapView[1]"
puts map.location.x
puts map.location.y

top = Appium::TouchAction.new
top.swipe start_x: 35, start_y: 83, end_x: 65, end_y: 113, duration: 500

bottom = Appium::TouchAction.new
bottom.swipe(start_x: 285,start_y: 333, end_x: 235, end_y: 283, duration: 500)

pinch = Appium::MultiTouch.new
pinch.add top
pinch.add bottom
pinch.perform

我认为代码是对的,为什么会报坐标超出范围,蛋疼。有高手没帮忙看下

共收到 3 条回复 时间 点赞

我在 github 报了个 bug 也没人解决:https://github.com/appium/appium/issues/4231

#1 楼 @wensj 开启下调试吧, 看看鼠标的轨迹. iOS 的我没研究过, android 是可以跟踪鼠标轨迹的. 看看什么地方越界就清楚了

匿名 #3 · 2014年12月15日

iOS 坐标越界可以关注下台湾友人@gigayaya 的贴 [心得] 有關於點擊坐標在 iOS 報錯超出範圍

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册