我有一个简单的例程,可以通过在屏幕上向左滑动来删除许多记录。它只删除某种状态的记录,即准备提交。最高记录可能不一定处于那种状态,所以我不能使用固定的 y 坐标。相反,我使用在该状态下找到的第一条记录的 y 坐标。
这是我要执行的代码:
while query("* marked:'SUBMIT'").count > 0
y = query("UIButtonLabel marked:'SUBMIT'")[0]["rect"]["center_y"]
uia('target.dragFromToForDuration({x:"481.5", y:"#{y}"}, {x:"350", y:"#{y}"}, "1")')
touch("* marked:'Delete'")
touch("view:'_UIAlertControllerActionView' marked:'Delete'")
end
问题是变量 y 似乎在所有这些引号中都无法访问。该方法成功,但 UI 未按预期响应。我在控制台中尝试了该方法。当我将变量替换为整数时,它按预期工作,但变量没有。我试着让它成为一个没有区别的全局变量。我尝试使用点击命令来点击按钮,但再次无声地失败。
irb(main):006:0> y = query("UIButtonLabel marked:'SUBMIT'")[0]["rect"]["center_y"]
218.5
irb(main):007:0> y
218.5
irb(main):008:0> uia('target.dragFromToForDuration({x:"481.5", y:"#{y}"}, {x:"350", y:"#{y}"}, "1")')
{
"status" => "success",
"index" => 1
}
有没有办法以这种方式引用此方法中的变量?