首先使用uiautomatorviewer获取需要的classname如下图,classname即为:android.widget.TextView
获取到了classname后,会发现有很多控件都是这个classname,所以我们不能使用classname来获取到唯一控件,获取到的即为一组控件,代码如下:
CLASS_NAME=(By.CLASS_NAME,'android.widget.TextView')
WebDriverWait(self.driver,30,0.1).until(EC.presence_of_all_elements_located(CLASS_NAME))
list=self.driver.find_elements_by_class_name('android.widget.TextView')
time.sleep(5)
一定要使用等待将页面的元素都加载出来,否则在接下来的步骤可能会找不到我们需要定位的元素:
接下来我们在list的地方打个断点,然后使用debug模式运行:
注意一定要在list的地方或者之前打断点,目的就是为了查看list中的所有定位到的元素,当运行到list的时候,我们可以通过debug看到如下:
图中的list即为我们代码中的list,途中的标号如00,01,02,03。。。。。即为我们列表中获取到的元素,他们的classname全都是android.widget.TextView',我们点击开一个来查看:
如图,我们可以看到标号对应的location,其中标号就是列表的下标,location就是元素的坐标,我们可以到uiautomatorviewer中来找到我们需要的元素的坐标,然后来找到对应的location,这个location所在的标号即为我们需要的元素的下标,
上图就是通过坐标找到的对应的坐标,其列表下标为10
所以点击这个元素可以写成:
list[10].click() # 点击设置
time.sleep(3)
即可完成点击。