pywinauto edit控件中set_text()不可用
时间: 2024-03-29 22:41:46 浏览: 131
有可能是因为该edit控件没有焦点或者被禁用了。你可以尝试使用`set_focus()`方法给该控件设置焦点,然后再使用`set_text()`方法给该控件设置文本。如果该控件被禁用,你可以尝试先启用该控件,然后再设置文本。
如果仍然无法解决问题,可以尝试使用`set_edit_text()`方法,该方法是`set_text()`方法的一个替代品,可以使用在一些特殊情况下。如果还有问题,可以提供更多的详细信息,我会尽力帮助你解决问题。
相关问题
pywinauto set_window_text
在 pywinauto 中,可以使用 `set_text()` 方法来设置窗口中某个控件的文本。这个方法需要传入控件的识符和要设置的文本。例如:
python
from pywinauto import Application
app Application().start("notepad.exe")
dlg = app_window()
# 获取编辑框控件标识符
edit = dlg['Edit']
# 设置编辑框文本
edit.set_text("Hello, world!")
# 关闭应用程序
app.kill()
```
执行这段代码,会启动记事本应用程序,并在记事本窗口中的编辑框中输入 "Hello, world!" 文本。
from pywinauto.application import Application from pywinauto.keyboard import send_keys app = Application('win32').connect(class_name_re='class TMainFrame') dlg = app.window(class_name_re='class TMainFrame') #dlg.minimize() #dlg['MouseOrder'].print_control_identifiers() """ dlg['合 约Edit2'].set_edit_text('SHFE AU 2312') dlg['合 约Edit2'].type_keys('{ENTER}') dlg['数 量Edit7'].set_edit_text('5') """ #print(dir(dlg.child_window(best_match='sell').wrapper_object())) #print(dlg['sell'].wrapper_object()) #print(dir(dlg['sell'].wrapper_object())) #print(dlg['sell'].texts()) #print(dlg['sell'].children()) #dlg['sell'].print_control_identifiers() xia_dan = dlg['sell'].rectangle() print(xia_dan)
这段代码中,`dlg['sell'].rectangle()`返回的是一个矩形区域的坐标,表示`sell`控件在窗口客户区域中的位置和大小。具体来说,返回值是一个4元组 `(L, T, R, B)`,其中 `L` 表示矩形左边界的横坐标,`T` 表示矩形上边界的纵坐标,`R` 表示矩形右边界的横坐标,`B` 表示矩形下边界的纵坐标。
你可以通过这个矩形的坐标信息来计算控件的中心坐标或者其他需要的坐标信息。比如,如果你想要获取`sell`控件的中心坐标,可以使用以下代码:
```
x1, y1, x2, y2 = dlg['sell'].rectangle()
center_x = (x1 + x2) // 2
center_y = (y1 + y2) // 2
print("sell控件中心坐标为:({},{})".format(center_x, center_y))
```
这里的 `//` 表示整除运算符,保证计算结果为整数。
阅读全文