Я работаю над автоматизацией UI-тестов для приложения и имею проблемы с пунктами меню в Windows. Кстати, у меня это работает на Mac для сестринского приложения.
Я использую Appium из Python.
Я могу найти дерево меню с помощью Inspect.exe, щелкнуть меню верхнего уровня, которое затем открывает раскрывающийся список, и здесь я нахожу пункт меню, который хочу щелкнуть, но WinAppDriver не удается с этой ошибкой:
{"status":105,"value":{"error":"element not interactable","message":"An element command could not be completed because the element is not pointer- or keyboard interactable."}}
Следующий питон воспроизводит проблему.
import time
import unittest
from appium import webdriver
app_exe_path = "C:\\Program Files\\Phase One\\Capture One 12\\CaptureOne.exe"
menu_name = "Select"
menu_item_name = "First"
switch_window = True
# app_exe_path = "C:\\Windows\\Notepad.exe"
# menu_name = "File"
# menu_item_name = "Open..."
# switch_window = False
class ClickApplicationMenuItem(unittest.TestCase):
def test_click_application_menu_item(self):
driver = webdriver.Remote(
command_executor="http://localhost:4723",
desired_capabilities={"app": app_exe_path},
)
if switch_window:
time.sleep(5) # non-optimal code for the sake of a simple repro
handles = driver.window_handles
driver.switch_to.window(handles[0])
menu = driver.find_element_by_name(menu_name)
menu.click() # fails in the Notepad case
item = menu.find_element_by_name(menu_item_name)
item.click() # fails in the CaptureOne case
if __name__ == "__main__":
unittest.main()
Любой совет, как щелкнуть пункт меню?