Tôi đang cố gắng tự động hóa một ứng dụng bằng cách sử dụng AutoIt và tôi cần đợi một điều khiển xuất hiện trong ứng dụng trước khi tự động hóa có thể bắt đầu. Điều khiển này tải ngay sau khi ứng dụng bắt đầu, nhưng nó không thay đổi tiêu đề cửa sổ. Làm cách nào để chờ kiểm soát xuất hiện?AutoIT Đợi một Yếu tố Điều khiển xuất hiện
Trả lời
Để xử lý điều khiển trên GUI khác, bạn cần sử dụng AutoIt Window Info Tool để xác định điều khiển đó. Để có được tên lớp của điều khiển, hãy vào tab "Điều khiển" và tra cứu giá trị cho "ClassnameNN". Bây giờ bạn có thể sử dụng giá trị này như tôi đã làm trong ví dụ bên dưới.
Tất nhiên bạn cần thay thế "Button1"
bằng thông tin bạn nhận được từ Công cụ Thông tin AutoIt và sửa đổi tiêu đề cửa sổ cho phù hợp.
Global $hCtrl = 0, $Waiting = True
; your GUI loop
While (1)
If $Waiting And WinExists("Title of OtherApp.exe") Then
$hCtrl = ControlGetHandle("Title of OtherApp.exe", "", "Button1")
If $hCtrl Then
; we got the handle, so the button is there
; now do whatever you need to do
GUICtrlCreateLabel("Button is there!", 10, 10)
$Waiting = False
EndIf
EndIf
$iMsg = GUIGetMsg()
Switch $iMsg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Tôi muốn thêm vào câu trả lời của Mrt. Ví dụ, tôi đang cố gắng để có được những khoảnh khắc khi tiêu đề trong hình bầu dục màu đen là đã nhìn thấy được, tức là
Nhưng đây là giai đoạn đầu tiên ra mắt, khi $hCtrl
rõ ràng là không nhìn thấy được
nhưng $hCtrl = ControlGetHandle("Title of OtherApp.exe", "", "Static13")
lợi nhuận ad-hoc TRUE đã (cái gì đó như <HWnd>0x000...192
vv)
giải pháp của tôi là thêm (đối chứng) title to ControlGetHandle:
ControlGetHandle("Title of OtherApp.exe", "Отключено", "Static13")
Pelase downvoters có thể giải thích tại sao, vì lợi ích của người học? – Mawg
Nó không hoạt động ngay bây giờ, nhưng giao diện đích vẫn tiếp tục. – Hippopotamus
- 1. Trình quản trị trang web chờ một trong nhiều yếu tố xuất hiện
- 2. Yếu tố/collect biểu hiện trong Sympy
- 3. Chạm vào một yếu tố kích hoạt vòi nước trên một yếu tố khác xuất hiện ở cùng một nơi trên Safari di động (vòi ma)
- 4. khoảng cách Fix xuất hiện trên một yếu tố LI khi sử dụng: sau khi
- 5. Có một bộ điều khiển xem khác trước khi bộ điều khiển chế độ xem hiện tại xuất hiện
- 6. yếu tố đầu tiên của một mảng với điều kiện
- 7. Thêm yếu tố mới cho một đối tượng hiện
- 8. Trình điều khiển Web Selenium đợi nhấp vào phần tử?
- 9. Làm thế nào để làm cho một yếu tố nội tuyến xuất hiện trên dòng mới, hoặc khối yếu tố không chiếm toàn bộ dòng?
- 10. bộ một yếu tố css
- 11. Thêm yếu tố để một JList
- 12. XSLT - So sánh các yếu tố trước-ACE có yếu tố nút hiện tại của
- 13. Mongodb - bao gồm hoặc loại trừ các yếu tố nhất định với trình điều khiển C#
- 14. TabIndex ở dạng động (các yếu tố xuất hiện tùy theo từng trường hợp)
- 15. Sơ đồ Venn từ danh sách các cụm và các yếu tố đồng xuất hiện
- 16. jQuery: Làm thế nào để kiểm tra xem chuột xuất hiện nhiều yếu tố
- 17. Xcode: Làm thế nào để tạo một bộ điều khiển xem PopUp xuất hiện trong bộ điều khiển xem khác
- 18. python lxml thêm yếu tố sau yếu tố khác
- 19. Kết hợp hai vectơ yếu tố-by-yếu tố
- 20. Làm thế nào để chờ đợi cho đến khi một yếu tố tồn tại cho dojo?
- 21. yếu tố thay thế của một vector
- 22. JQuery: Lấy id yếu tố phụ huynh của một yếu tố nhấp
- 23. yếu tố dao động tràn ra từ một overflow: hidden yếu tố css
- 24. Chọn yếu tố cụ thể trước khi yếu tố khác
- 25. Lấy các yếu tố của một số
- 26. Chuyển đổi yếu tố jQuery để một yếu tố dom thường xuyên
- 27. inline-block yếu tố lồng trong một yếu tố inline-block có offsetTop
- 28. Thêm yếu tố SVG tới SVG hiện sử dụng DOM
- 29. Vui lòng đề xuất một plugin JQuery xử lý phát hiện va chạm cho các yếu tố có thể kéo
- 30. Điều gì làm <o:p> yếu tố nào?
Trong khi ($ Waiting), chứ không phải trong khi (1). Nó sẽ không bao giờ thoát khỏi vòng lặp while. Nó không làm các trick với sửa đổi đó mặc dù, vì vậy cảm ơn cho câu trả lời! –
@JohnMoses Không có 'Trong khi (1)' là chính xác vì đây chỉ là một đoạn trích và không phải là một giải pháp làm việc đầy đủ. Các kịch bản AutoIt có giao diện người dùng riêng bao gồm một vòng lặp vô hạn để nắm bắt thông điệp giao diện người dùng và đây là những gì tôi muốn hiển thị trong tập lệnh của mình. Xem: https://www.autoitscript.com/autoit3/docs/guiref/GUIRef_MessageLoopMode.htm – mrt
@JohnMoses Tôi đã mở rộng ví dụ của mình để nó rõ ràng hơn. (hy vọng :)) – mrt