Appium 如果 页面中某元素定位信息是多个中的一个 ,但又不确定是哪一个 ,请问 该怎么确定

john · 2015年09月15日 · 最后由 yifenzhonghuxi 回复于 2016年05月23日 · 1379 次阅读

我用 try catch 轮询 但是异常方式比较浪 费时间???

另外,问一下模拟过程 很慢,有什么方法能加快模拟操作过程!!!

下面是我的轮询代码 ,不知这么处理可笑否=?
while(true)
{
try{
driver.findElementById("Seaarch1_text").click();
break ;
}

catch (Exception e1){
}
try{
driver.findElementById("("Seaarch2_text").click() ;
break ;
}

catch (Exception e2){
}

try{
driver.findElementById("("Seaarch3_text").click() ;
break ;
}

catch (Exception e3){
System.out.println("No Select....." );
// fail("No Correct Return ");
}

break;
}

共收到 12 条回复 时间 点赞

不太懂,用 xpath 没法精确定位吗
appium 就是很慢,和本身机制有关

请用 MD 格式编辑代码......

if isIdExist("Seaarch1_text"):
    clickId("Seaarch1_text")
elif isIdExist("Seaarch2_text"):
    clickId("Seaarch2_text")
john #5 · 2015年09月15日 Author

anikikun · 你好
isIdExist() 是您自己写的吗? 这么封装一下挺好 ,
具体是怎么判断是否存在该元素呢?

我现在的最大问题是运行速度 挺慢的

john #6 · 2015年09月15日 Author

#2 楼 @anikikun
anikikun · 你好
isIdExist() 是您自己写的吗? 这么封装一下挺好 ,
具体是怎么判断是否存在该元素呢?

我现在的最大问题是运行速度 挺慢的

#3 楼 @johnwrite 肯定是自己封装啊。
就是把 try catch 包住,find 执行成功了返回 True,Find 失败了 catch 返回 False..这是最简单的思路了。

用 xpath 吧,中间可以插入 or 来分开这些条件

john #6 · 2015年09月15日 Author

#6 楼 @weamylady
还可以这么写?? 给个例子

john #1 · 2015年09月15日 Author

#5 楼 @anikikun
谢谢你的思路

#8 楼 @johnwrite 用 xpath 的思路是如果你想要点击的控件,一直是在同一个位置,那么 xpath 是不变的,只是 id 不一样的话就可以这么干。

//*[@id='aaa' or @id='bbb']
类似于这样,具体你要试一下,属性名字是不是 id

john #11 · 2015年09月16日 Author

#10 楼 @weamylady
好,谢谢

学习留名

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