滚动查找元素

 def test_daka(self):
        self.driver.find_element(MobileBy.XPATH,"//*[@text='工作台']").click()
        self.driver.find_element(MobileBy.ANDROID_UIAUTOMATOR,
                                 'new UiScrollable(new 
                            UiSelector().scrollable(true).instance(0)).scrollIntoView(new 
                          UiSelector().text("打卡").instance(0));').click()
----------------------------------------------------------------------------
>       self.driver.find_element(By.ANDROID_UIAUTOMATOR,
                                 'new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text("打卡").instance(0));').click()
NoSuchElementException

运行滚动查找元素的时候就是没有滚动导致元素也无法查找到。有高手指点一下为什么滚动元素没有滚到。

根据已有的代码片段的一点修改建议,供你参考:

(1)最后一个By.ANDROID_UIAUTOMATOR,改成MobileBy.XPATH

(2)把click()方法写到滚动代码后面试试:

例如:

def test_daka(self):
    self.driver.find_element(MobileBy.XPATH,"//*[@text='工作台']").click()
    self.driver.find_element(MobileBy.ANDROID_UIAUTOMATOR, 'new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text("打卡").instance(0)).click();')
    self.driver.find_element(MobileBy.ANDROID_UIAUTOMATOR,'new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text("打卡").instance(0)).click();')

你好,你给的建议还是不行;是InvalidSelectorException异常。
它是一个uiautomator的定位方式滚动查找元素更换MobileBy.XPATH 是一个不正确可取的。若是解决不了我有空查查官方的文档吧。

看起来没啥问题,可能当前界面是不是没有滚屏控件,只是单纯的控件太多,如果没有滚屏控件,用这个语法是不对的。你可以用scroll方法直接滚屏。