安卓盒子和手机不同一点是,手机是触屏,直接可以点击相应元素
但是盒子没有触屏,是通过遥控器移动焦点去操作元素的
像这样的界面,怎么样可以快速的把焦点跳到某一个元素上面?直接用 findelement 方法,焦点不会动。。。
up down left right
算坐标,touchAction move 到指定的 x,y 上,焦点就会动
你先获取到你要定位的控件 然后拿到坐标 再去操作
appium 新增了图片识别。可以试试
WebElement ele =findElementXXX;
new TouchAction(driver).moveTo(ElementOption.element(ele)).release().perform();
然后报错:Cannot perform TouchMove action at (1635, 511)
请明示啊大佬
填坐标,别直接填 Element,getLocation 元素的起点坐标,在 getSize 获取一个方块的长度和宽度,起点坐标 X+ 宽度/2=中心坐标 X,起点坐标 Y+ 长度/2=中心坐标 Y,这样一个方块的中心坐标的 x,y 就获取到了可以直接用坐标移动点击
是填的坐标啊老哥,ElementOption.element(ele),这个返回的就是一个坐标。。。。
确实无法把焦点移动过去,只能直接点击
循环递增或者递减坐标数值,再用 sleep 控制递增或递减的速度,这样 move 不就可以看的清楚了么,我没试过,这只是我的一个想法
也许会跟我这边的一样。
未获焦的 tap 会获焦,已获焦的 tap 会打开
我是通过检验元素属性检查获焦状态,focus=true/false,来实现切换获焦而不打开内容
是获取这个状态,并不是去设置,这个是我的实现。
大概思路就是获取目标元素属性,如果是未选中,则点击;已选中,则不点。
def select_xian(self):
icon = self.find_acc_element('鲜时光')
if icon.get_attribute('selected') == 'false':
icon.click()