AttributeError: Neither GUI element (wrapper) nor wrapper method 'send_keys' were found
时间: 2024-03-16 08:44:47 浏览: 76
这个错误出现的原因是 pywinauto 找不到要发送按键的控件。可能是因为控件的标识符不正确或控件没有被正确地识别。
您可以检查以下几点:
1. 确保您已经正确获取了要发送按键的控件的标识符。可以使用 `print_control_identifiers()` 方法来查看控件的标识符是否正确。
2. 确保您已经正确地激活了要发送按键的窗口。可以使用 `app.top_window()` 方法来获取应用程序的顶层窗口,并使用 `set_focus()` 方法将窗口激活。
3. 确保您使用的 pywinauto 版本正确。如果使用的是较老的版本,可能会出现某些方法不可用的情况。建议升级到最新版本。
4. 如果您仍然无法解决问题,可以尝试使用 `type_keys()` 方法来发送按键。例如:
```python
from pywinauto import Application
app = Application().start("notepad.exe")
dlg = app.top_window()
# 获取编辑框控件标识符
edit = dlg['Edit']
# 使用 type_keys() 方法发送按键
edit.type_keys("Hello, world!")
# 关闭应用程序
app.kill()
```
这个方法可以直接在当前焦点控件中发送按键,不需要指定要发送按键的控件。
相关问题
AttributeError: Neither GUI element (wrapper) nor wrapper method 'get_slection' were found
非常抱歉,我的之前的回答中有误,`get_slection()` 方法是 pywinauto 中 ComboBox 控件的方法,而不是 ComboBoxWrapper 控件的方法。正确的方法应该是 `get_value()`。因此,你可以使用如下代码来获取当前选中的选项:
```python
selected_option = combobox_ctrl.get_value()
```
如果你想得到下拉框中所有选项的列表,可以使用如下代码:
```python
all_options = combobox_ctrl.get_list_contents()
```
希望这次回答能够帮到你。如果你还有其他问题,请随时提出,我会尽力回答。
阅读全文