Я использую эмулятор Dolphin 5.0-6711 gcb, который является одной из старых версий и использует Qt5. Я пытаюсь открыть «Файл-> Инструменты-> Запустить Netplay ...» и запустить хост из этого нового открытого окна с именем «Настройка Dolphin NetPlay». Я могу отредактировать Port
, Nickname
и выбрать игру из ListBox
. Но я не могу выбрать какие-либо элементы из «Тип подключения» ComboBox
, который имеет опции Direct Connection
и Treversal Server
. Когда я использую print_control_identifiers()
для окна «Dolphin NetPlay Setup», я не вижу никаких элементов ComboBox
. Это мой вывод из print_control_identifiers()
:
Dialog - 'Dolphin NetPlay Setup' (L627, T351, R1277, B854)
[u'Dolphin NetPlay Setup', u'Dialog', u'Dolphin NetPlay SetupDialog']
child_window(title="Dolphin NetPlay Setup", control_type="Window")
|
| Pane - 'panel' (L636, T389, R1268, B845)
| ['Pane', u'panelPane0', u'panelPane1', u'panel', u'panelPane',
u'panel0', u'panel1', u'Pane1', u'Pane0']
| child_window(title="panel", auto_id="-31967", control_type="Pane")
| |
| | Static - 'Connection Type:' (L642, T398, R756, B419)
| | [u'Connection Type:Static', u'Connection Type:1', u'Connection
Type:0', u'Static', u'Connection Type:Static1', u'Connection Type:Static0',
u'Static1', u'Static0', u'Connection Type:']
| | child_window(title="Connection Type:", auto_id="-31966",
control_type="Text")
| |
| | ComboBox - 'Connection Type:' (L762, T395, R950, B423)
| | [u'Connection Type:ComboBox', u'Connection Type:2', 'ComboBox']
| | child_window(title="Connection Type:", auto_id="-31965",
control_type="ComboBox")
| | |
| | | Static - 'Connection Type:' (L3, T3, R164, B25)
| | | [u'Connection Type:3', u'Connection Type:Static2', u'Static2']
| | | child_window(title="Connection Type:", control_type="Text")
| | |
| | | Button - 'Open' (L930, T396, R949, B422)
| | | [u'OpenButton', u'Button1', u'Button0', u'Open', 'Button']
| | | child_window(title="Open", auto_id="DropDown", control_type="Button")
| |
| | Static - 'Nickname:' (L642, T432, R711, B453)
| | [u'Nickname:', u'Nickname:Static', u'Static3']
| | child_window(title="Nickname:", auto_id="-31963", control_type="Text")
| |
| | Edit - 'Nickname:' (L762, T429, R950, B457)
| | [u'', u'0', u'Edit1', u'Nickname:Edit', u'1', 'Edit', u'Edit0']
| | child_window(title="Nickname:", auto_id="-31962", control_type="Edit")
| |
| | Button - 'Quit' (L1162, T804, R1262, B839)
| | ['Button2', u'Quit', u'QuitButton']
| | child_window(title="Quit", auto_id="-31960", control_type="Button")
| |
| | TabControl - '' (L642, T490, R1262, B798)
| | [u'2', u'TabControlHost', u'TabControlConnect', u'TabControl']
| | child_window(auto_id="-31959", control_type="Tab")
| | |
| | | Pane - 'panel' (L646, T519, R1258, B794)
| | | [u'panelPane2', u'panel2', 'Pane2']
| | | child_window(title="panel", auto_id="-31957", control_type="Pane")
| | | |
| | | | Static - 'Port:' (L652, T528, R682, B549)
| | | | [u'Port:', u'Port:Static', u'Static4']
| | | | child_window(title="Port:", auto_id="-31949", control_type="Text")
| | | |
| | | | Edit - 'Port:' (L688, T525, R823, B553)
| | | | [u'3', u'Port:Edit', 'Edit2']
| | | | child_window(title="Port:", auto_id="-31948", control_type="Edit")
| | | |
| | | | Button - 'Host' (L1152, T753, R1252, B788)
| | | | [u'Host1', u'Host0', u'Host', 'Button3', u'HostButton']
| | | | child_window(title="Host", auto_id="-31945", control_type="Button")
| | | |
| | | | ListBox - '' (L652, T559, R1252, B747)
| | | | [u'4', u'ListBox']
| | | | child_window(auto_id="-31944", control_type="List")
| | | | |
| | | | | ListItem - 'CAPCOM VS. SNK 2 EO (GEOE08)' (L654, T561, R1250, B581)
| | | | | [u'ListItem', u'CAPCOM VS. SNK 2 EO (GEOE08)', u'CAPCOM VS. SNK 2 EO (GEOE08)ListItem']
| | | | | child_window(title="CAPCOM VS. SNK 2 EO (GEOE08)", control_type="ListItem")
| | | |
| | | | CheckBox - 'Forward Port (UPnP)' (L829, T529, R991, B549)
| | | | ['CheckBox', u'Forward Port (UPnP)', u'Forward Port (UPnP)CheckBox']
| | | | child_window(title="Forward Port (UPnP)", auto_id="-31943", control_type="CheckBox")
| | |
| | | TabItem - 'Connect' (L644, T492, R710, B517)
| | | [u'ConnectTabItem', 'TabItem', u'Connect', u'TabItem0', u'TabItem1']
| | | child_window(title="Connect", control_type="TabItem")
| | |
| | | TabItem - 'Host' (L710, T492, R770, B517)
| | | [u'Host2', 'TabItem2', u'HostTabItem']
| | | child_window(title="Host", control_type="TabItem")
|
| TitleBar - '' (L656, T354, R1268, B389)
| ['TitleBar', u'5']
| |
| | Menu - 'System' (L636, T360, R664, B388)
| | [u'System0', u'System1', u'System', u'Menu', u'SystemMenu']
| | child_window(title="System", auto_id="MenuBar", control_type="MenuBar")
| | |
| | | MenuItem - 'System' (L636, T360, R664, B388)
| | | [u'System2', u'MenuItem', u'SystemMenuItem']
| | | child_window(title="System", control_type="MenuItem")
| |
| | Button - 'Minimize' (L1090, T352, R1150, B389)
| | ['Button4', u'Minimize', u'MinimizeButton']
| | child_window(title="Minimize", control_type="Button")
| |
| | Button - 'Maximize' (L1150, T352, R1209, B389)
| | ['Button5', u'MaximizeButton', u'Maximize']
| | child_window(title="Maximize", control_type="Button")
| |
| | Button - 'Close' (L1209, T352, R1269, B389)
| | ['Button6', u'CloseButton', u'Close']
| | child_window(title="Close", control_type="Button")
Это мои коды для запуска хоста без выбора элементов ComboBox:
from pywinauto.application import Application
app = Application(backend="uia")
app.start(r"./Dolphin-x64/Dolphin.exe")
dlg = app["Dolphin"]
dlg.menu_select("Tools->Start NetP")
netplay = app["Dolphin NetPlay Setup"]
netplay.print_control_identifiers()
netplay.Pane.Edit.set_text(username)
netplay.Pane.TabControl.select("Host")
netplay.Pane.TabControl.Pane.Edit.set_text("9999")
netplay.Pane.TabControl.Pane.ListBox.child_window(title="CAPCOM VS. SNK 2 EO (GEOE08)", control_type="ListItem").select()
netplay.Pane.TabControl.Pane.Button.click()
Я хочу выбрать первую опцию «Прямое подключение» из ComboBox
. Я пробовал select("Direct Connection")
и select(0)
, но не могу решить, какой из них использовать для навигации.
Я даже не могу получить информацию из print_control_identifiers()
для главного окна в последней версии Dolphin, поэтому я пытаюсь использовать эту старую версию.
EDIT:
Я обнаружил, что в этом ComboBox есть секретная кнопка. Если я нажму netplay.Pane.ComboBox.Button.click()
, то эта кнопка ListBox и вторая секретная кнопка закрытия появятся внутри ComboBox в соответствии с netplay.print_control_identifiers()
, и даже если я выберу элемент «Прямое соединение» в ListBox, вы должны закрыть эту вторую секретную кнопку закрытия, чтобы повлиять на изменение ComboBox .