Appium [求指导] 多层循环时,定位为空,scrollTo 报错

jytest · 2015年06月11日 · 最后由 babyshine 回复于 2016年03月10日 · 1365 次阅读

求路过大神指导。。
环境:iOS appium 1.3.6,python-client,模拟器 iPhone 6/iOS 8.1
起因:某个栏目,一个列表里的元素展开又是一个列表,所以自己写了个循环嵌套来遍历

主要代码:

#获取第一层列表元素
pinpai = wd.find_elements_by_xpath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[2]/UIATableView[1]/UIATableCell[@label = '']")
print pinpai[0],pinpai[0].id
print pinpai[1],pinpai[1].id
for x in pinpai:
    print "核对:",x,x.id
    print "打印名称:",x.get_attribute('name')
    time.sleep(2)
    wd.execute_script("mobile: scrollTo",{"element": x.id})
    time.sleep(2)
    #点击第一层元素,弹出第二层列表
    x.click()
    time.sleep(3)
    #获取第二层列表元素
    chexi = wd.find_elements_by_xpath("//UIAApplication[1]/UIAWindow[1]/UIATableView[1]/UIATableCell[@label = '']")
    for y in chexi:
        time.sleep(3)
        wd.execute_script("mobile: scrollTo",{"element": y.id})
        y.click()
        time.sleep(3)
        wd.find_element_by_name("返回").click()
    #手势滑动收起第二层列表
    wd.swipe(173,360,250,360)

问题:外层循环执行完一遍,运行就崩溃了,看自己的打印语句,第二遍的时候就崩了。
命令行报错

appium 中的错误信息该元素不能 scroll,但测试时,注释掉内层列表操作,只遍历外层又是可以循环遍历的

共收到 9 条回复 时间 点赞

我也遇到过类似的问题,也是某个列表里展开又是一个列表的,同问解决方法。

@chenhengjie123 大神求指导。。

#2 楼 @jytest 我猜你用的是模拟器。
你拿真机试试。scrollTo 在模拟器上貌似有问题。

#3 楼 @chenhengjie123 嗯嗯,后面我试试真机。看日志是感觉外层循环回来第二次获取的信息少了,请问有没有什么方法可以刷新下页面元素的。。

#4 楼 @jytest 不要说感觉少了,给出具体是不是少了,如果少了少了什么信息。感觉这个东西并不准确。

@jytest 这个问题实现了吗?

#6 楼 @tianying 还木有,还没弄好真机运行环境。。

#3 楼 @chenhengjie123 刚刚搞定真机上的环境,发现在真机上跑也出现一样的错误和报错信息。。

楼主解决没

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