关于python中使用uiautomator2YAML传参的问题
代码截图如下
测试下来使用send_keys()或set_text()都无法往里传进参数
在uiautomator2中,可以使用YAML格式的文件来定义测试用例。您可以在YAML文件中定义测试步骤以及参数,然后在Python脚本中通过uiautomator2库执行这些步骤。
如果您想要往输入框中输入参数,可以在YAML文件中使用args参数来传递需要输入的文本。例如:
- id: input_text
desc: 输入框
action: send_keys
args:
- Hello world
上面的代码中,我们定义了一个输入框,使用send_keys方法向输入框中输入了Hello world这个文本。您可以在Python脚本中使用以下代码执行这个步骤:
import uiautomator2 as u2
d = u2.connect() # 连接设备
d.yaml_import("test.yaml") # 导入YAML文件
d.click(100, 100) # 点击某个控件,触发执行测试步骤
上面的代码中,我们首先连接设备,然后使用yaml_import方法导入YAML文件,最后点击某个控件来触发执行测试步骤。这样,程序会在输入框中自动输入Hello world这个文本。
注意,如果您想要在执行send_keys方法时输入中文,需要确保您的设备已经安装了中文输入法,并且在输入中文时使用正确的拼音。另外,有些应用可能会禁用自动输入文本的功能,导致send_keys方法无法输入文本。在这种情况下,您可以尝试使用其他的输入方法,例如adb shell命令等。
如果对您有帮助,请给与采纳,谢谢。
如果你使用的是uiautomator2库,可以尝试以下方法来向YAML文件传递参数:
这里我们定义了一个名为text的参数,使用$符号将其与实际的值进行绑定。
1.在Python代码中通过send_keys()方法将参数传递到YAML文件中,例如:
```kotlin
d = u2.connect()
text_to_set = "Hello World"
d.yaml.set("text_to_set", text_to_set)
d(text="Some Element").set_text("$text_to_set")
这里我们首先使用u2.connect()方法连接设备,然后定义了一个名为text_to_set的变量并设置其值为"Hello World"。接下来,我们使用d.yaml.set()方法将这个变量传递到YAML文件中,并绑定到之前在YAML文件中定义的text参数上。最后,我们使用set_text()方法来将绑定了参数的操作发送给设备。