Autojs写一段代码,当控件没有ID,如何点击它?很详细的举例16种方法。

时间: 2023-08-31 18:40:46 浏览: 105
### 回答1: 针对控件没有ID的情况,Autojs可以使用其它属性进行查找,例如:1. 通过控件的文本内容查找,例如:id("text('')").findOne().click(); 2. 通过控件的类名查找,例如:id("className('')").findOne().click(); 3. 通过控件的父元素查找,例如:id("parent('')").findOne().click(); 4. 通过控件的子元素查找,例如:id("child('')").findOne().click(); 5. 通过控件的类型查找,例如:id("className("Button")").findOne().click(); 6. 通过控件的文本内容和父元素查找,例如:id("text("Test") parent("MainLayout")").findOne().click(); 7. 通过控件的文本内容和子元素查找,例如:id("text("Test") child("MyButton")").findOne().click(); 8. 通过控件的类名和父元素查找,例如:id("className("Button") parent("MainLayout")").findOne().click(); 9. 通过控件的类名和子元素查找,例如:id("className("Button") child("MyButton")").findOne().click(); 10. 通过控件的类型和父元素查找,例如:id("className("android.widget.Button") parent("MainLayout")").findOne().click(); 11. 通过控件的类型和子元素查找,例如:id("className("android.widget.Button") child("MyButton")").findOne().click(); 12. 通过控件的文本内容、父元素、子元素查找,例如:id("text("Test") parent("MainLayout") child("MyButton")").findOne().click(); 13. 通过控件的类名、父元素、子元素查找,例如:id("className("Button") parent("MainLayout") child("MyButton")").findOne().click(); 14. 通过控件的类型、父元素、子元素查找,例如:id("className("android.widget.Button") parent("MainLayout") child("MyButton")").findOne().click(); 15. 通过控件的位置查找,例如:id("bounds(100,100,200,200)").findOne().click(); 16. 通过控件的属性查找,例如:id("property(name:value)").findOne().click(); ### 回答2: 在Auto.js中,当控件没有ID时,可以通过以下16种方法之一进行点击操作: 1. 通过text获取控件:可以使用`text()`方法获取控件的文本内容,然后使用`click()`方法进行点击。 ``` var control = text("控件文本").findOne(); control.click(); ``` 2. 通过textContains获取控件:使用`textContains()`方法获取控件的部分文本内容,然后使用`click()`方法进行点击。 ``` var control = textContains("部分文本").findOne(); control.click(); ``` 3. 通过desc获取控件:使用`desc()`方法获取控件的描述信息,然后使用`click()`方法进行点击。 ``` var control = desc("控件描述").findOne(); control.click(); ``` 4. 通过descContains获取控件:使用`descContains()`方法获取控件的部分描述信息,然后使用`click()`方法进行点击。 ``` var control = descContains("部分描述").findOne(); control.click(); ``` 5. 通过className获取控件:使用`className()`方法获取控件的类名,然后使用`click()`方法进行点击。 ``` var control = className("控件类名").findOne(); control.click(); ``` 6. 通过classNameContains获取控件:使用`classNameContains()`方法获取控件的部分类名,然后使用`click()`方法进行点击。 ``` var control = classNameContains("部分类名").findOne(); control.click(); ``` 7. 通过id获取控件:使用`id()`方法获取控件的ID,然后使用`click()`方法进行点击。 ``` var control = id("控件ID").findOne(); control.click(); ``` 8. 通过packageName获取控件:使用`packageName()`方法获取控件所在的应用包名,然后使用`click()`方法进行点击。 ``` var control = packageName("应用包名").findOne(); control.click(); ``` 9. 通过index获取控件:使用`index()`方法获取指定位置索引的控件,然后使用`click()`方法进行点击。 ``` var control = index(0).findOne(); control.click(); ``` 10. 通过bounds获取控件:使用`bounds()`方法获取控件的矩形区域,然后计算点击的位置进行点击。 ``` var control = bounds(x1, y1, x2, y2).findOne(); control.click(); ``` 11. 通过parent获取控件:使用`parent()`方法获取控件的父控件,然后使用`click()`方法进行点击。 ``` var control = parent().findOne(); control.click(); ``` 12. 通过child获取控件:使用`child()`方法获取控件的子控件,然后使用`click()`方法进行点击。 ``` var control = child().findOne(); control.click(); ``` 13. 通过sibling获取控件:使用`sibling()`方法获取控件的兄弟控件,然后使用`click()`方法进行点击。 ``` var control = sibling().findOne(); control.click(); ``` 14. 使用`click()`方法的offset参数:对于某些控件,可以通过设置`click()`方法的offset参数来指定点击的位置。 ``` var control = text("控件文本").findOne(); control.click(x, y); ``` 15. 使用`gesture()`方法模拟手势点击:如果其他方式无法点击控件,可以使用`gesture()`方法模拟手势点击。 ``` var control = text("控件文本").findOne(); gesture(x1, y1, x2, y2, duration); ``` 16. 使用悬浮球点击:如果其他方式无法点击控件,可以使用Auto.js提供的悬浮球功能进行点击。 ``` var control = text("控件文本").findOne(); control.click("auto"); ``` 以上是16种点击控件的方法,使用Auto.js时可以根据实际情况选择合适的方法进行操作。

相关推荐

最新推荐

recommend-type

python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法

主要介绍了python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法,需要的朋友可以参考下
recommend-type

python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例

主要介绍了python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例,需要的朋友可以参考下
recommend-type

Qt GUI图形图像开发之QT表格控件QTableView详细使用方法与实例

主要介绍了Qt GUI图形图像开发之QT表格控件QTableView详细使用方法与实例,需要的朋友可以参考下
recommend-type

python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性

主要介绍了python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性,需要的朋友可以参考下
recommend-type

python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例

主要介绍了python GUI库图形界面开发PyQt5树形结构控件QTreeWidget详细使用方法与实例,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。