AltTester-Driver 2.2.0__tar.gz → 2.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/AltTester_Driver.egg-info/PKG-INFO +14 -2
  2. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/AltTester_Driver.egg-info/SOURCES.txt +1 -0
  3. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/PKG-INFO +14 -2
  4. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/__init__.py +1 -1
  5. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/__version__.py +2 -2
  6. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/_websocket.py +1 -1
  7. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/altdriver.py +1 -1
  8. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/altobject.py +14 -1
  9. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/by.py +1 -1
  10. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/AltTesterCommands/__init__.py +1 -1
  11. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/AltTesterCommands/add_notification_listener.py +1 -1
  12. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/AltTesterCommands/remove_notification_listener.py +1 -1
  13. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/AltTesterCommands/reset_input.py +1 -1
  14. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/AltTesterCommands/set_server_logging.py +1 -1
  15. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/FindObjects/__init__.py +1 -1
  16. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/FindObjects/find_object.py +1 -1
  17. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/FindObjects/find_object_at_coordinates.py +1 -1
  18. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/FindObjects/find_object_which_contains.py +1 -1
  19. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/FindObjects/find_objects.py +1 -1
  20. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/FindObjects/find_objects_which_contains.py +1 -1
  21. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/FindObjects/wait_for_component_property.py +1 -1
  22. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/FindObjects/wait_for_object.py +1 -1
  23. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/FindObjects/wait_for_object_to_not_be_present.py +1 -1
  24. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/FindObjects/wait_for_object_which_contains.py +1 -1
  25. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/__init__.py +1 -1
  26. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/begin_touch.py +1 -1
  27. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/click_coordinates.py +1 -1
  28. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/end_touch.py +1 -1
  29. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/keys_down.py +1 -1
  30. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/keys_up.py +1 -1
  31. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/move_mouse.py +1 -1
  32. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/move_touch.py +1 -1
  33. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/multi_point_swipe.py +1 -1
  34. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/press_keys.py +1 -1
  35. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/scroll_mouse.py +1 -1
  36. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/swipe.py +1 -1
  37. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/tap_coordinates.py +1 -1
  38. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/InputActions/tilt.py +1 -1
  39. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/Notifications/__init__.py +1 -1
  40. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/Notifications/base_notification_callbacks.py +1 -1
  41. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/Notifications/load_scene_mode.py +1 -1
  42. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/Notifications/load_scene_notification_result.py +1 -1
  43. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/Notifications/log_notification_result.py +1 -1
  44. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/Notifications/notification_type.py +1 -1
  45. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/__init__.py +2 -1
  46. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/call_method.py +1 -1
  47. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/click_element.py +1 -1
  48. alttester_driver-2.2.2/alttester/commands/ObjectCommands/find_object_from_object.py +63 -0
  49. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/get_all_components.py +1 -1
  50. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/get_component_property.py +1 -1
  51. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/get_text.py +1 -1
  52. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/pointer_down.py +1 -1
  53. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/pointer_enter.py +1 -1
  54. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/pointer_exit.py +1 -1
  55. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/pointer_up.py +1 -1
  56. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/set_component_property.py +1 -1
  57. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/set_text.py +1 -1
  58. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/ObjectCommands/tap_element.py +1 -1
  59. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/__init__.py +1 -1
  60. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/delete_player_pref.py +1 -1
  61. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/delete_player_pref_key.py +1 -1
  62. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/get_all_loaded_scenes.py +1 -1
  63. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/get_current_scene.py +1 -1
  64. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/get_player_pref_key.py +1 -1
  65. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/get_time_scale.py +1 -1
  66. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/get_visual_element_property.py +1 -1
  67. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/load_scene.py +1 -1
  68. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/set_player_pref_key.py +1 -1
  69. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/set_time_scale.py +1 -1
  70. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/unload_scene.py +1 -1
  71. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/UnityCommands/wait_for_current_scene_to_be.py +1 -1
  72. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/__init__.py +1 -1
  73. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/base_command.py +17 -1
  74. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/get_png_screenshot.py +1 -1
  75. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/get_server_version.py +1 -1
  76. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/get_static_property.py +1 -1
  77. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/commands/set_static_property.py +1 -1
  78. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/exceptions.py +1 -1
  79. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/keycode.py +1 -1
  80. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/logging.py +1 -1
  81. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/playerpref.py +1 -1
  82. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/alttester/reverse_port_forwarding.py +2 -2
  83. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/setup.py +1 -1
  84. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/__init__.py +1 -1
  85. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/conftest.py +1 -1
  86. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_driver.py +1 -1
  87. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_notifications.py +1 -1
  88. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_reverse_port_forwarding.py +1 -1
  89. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_scene01_part1.py +1 -1
  90. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_scene01_part2.py +36 -1
  91. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_scene02.py +1 -1
  92. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_scene03.py +1 -1
  93. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_scene05.py +1 -1
  94. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_scene07.py +1 -1
  95. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_scene09.py +1 -1
  96. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/test_scene10.py +1 -1
  97. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/integration/utils.py +1 -1
  98. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/unit/__init__.py +1 -1
  99. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/unit/test_altobject.py +1 -1
  100. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/unit/test_commands.py +1 -1
  101. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/tests/unit/test_websocket.py +1 -1
  102. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/AltTester_Driver.egg-info/dependency_links.txt +0 -0
  103. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/AltTester_Driver.egg-info/not-zip-safe +0 -0
  104. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/AltTester_Driver.egg-info/requires.txt +0 -0
  105. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/AltTester_Driver.egg-info/top_level.txt +0 -0
  106. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/MANIFEST.in +0 -0
  107. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/README.md +0 -0
  108. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/requirements-dev.txt +0 -0
  109. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/requirements.txt +0 -0
  110. {alttester_driver-2.2.0 → alttester_driver-2.2.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: AltTester-Driver
3
- Version: 2.2.0
3
+ Version: 2.2.2
4
4
  Summary: Python bindings for the AltTester® framework. AltTester® is an open-source UI driven test automation tool that helps you find objects in your game and interacts with them.
5
5
  Home-page: https://alttester.com/docs/sdk/latest/
6
6
  Author: Altom Consulting
@@ -38,6 +38,18 @@ Requires-Dist: loguru
38
38
  Requires-Dist: deprecated
39
39
  Requires-Dist: websocket-client
40
40
  Requires-Dist: pure-python-adb
41
+ Dynamic: author
42
+ Dynamic: author-email
43
+ Dynamic: classifier
44
+ Dynamic: description
45
+ Dynamic: description-content-type
46
+ Dynamic: home-page
47
+ Dynamic: keywords
48
+ Dynamic: license
49
+ Dynamic: project-url
50
+ Dynamic: requires-dist
51
+ Dynamic: requires-python
52
+ Dynamic: summary
41
53
 
42
54
  # AltTester® Python Bindings
43
55
 
@@ -64,6 +64,7 @@ alttester/commands/Notifications/notification_type.py
64
64
  alttester/commands/ObjectCommands/__init__.py
65
65
  alttester/commands/ObjectCommands/call_method.py
66
66
  alttester/commands/ObjectCommands/click_element.py
67
+ alttester/commands/ObjectCommands/find_object_from_object.py
67
68
  alttester/commands/ObjectCommands/get_all_components.py
68
69
  alttester/commands/ObjectCommands/get_component_property.py
69
70
  alttester/commands/ObjectCommands/get_text.py
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: AltTester-Driver
3
- Version: 2.2.0
3
+ Version: 2.2.2
4
4
  Summary: Python bindings for the AltTester® framework. AltTester® is an open-source UI driven test automation tool that helps you find objects in your game and interacts with them.
5
5
  Home-page: https://alttester.com/docs/sdk/latest/
6
6
  Author: Altom Consulting
@@ -38,6 +38,18 @@ Requires-Dist: loguru
38
38
  Requires-Dist: deprecated
39
39
  Requires-Dist: websocket-client
40
40
  Requires-Dist: pure-python-adb
41
+ Dynamic: author
42
+ Dynamic: author-email
43
+ Dynamic: classifier
44
+ Dynamic: description
45
+ Dynamic: description-content-type
46
+ Dynamic: home-page
47
+ Dynamic: keywords
48
+ Dynamic: license
49
+ Dynamic: project-url
50
+ Dynamic: requires-dist
51
+ Dynamic: requires-python
52
+ Dynamic: summary
41
53
 
42
54
  # AltTester® Python Bindings
43
55
 
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -15,4 +15,4 @@
15
15
  along with this program. If not, see <https://www.gnu.org/licenses/>.
16
16
  """
17
17
 
18
- VERSION = "2.2.0"
18
+ VERSION = "2.2.2"
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -158,6 +158,19 @@ class AltObject:
158
158
 
159
159
  return AltObject(self._altdriver, data)
160
160
 
161
+ def find_object_from_object(self, by, value, camera_by=By.NAME, camera_value="", enabled=True):
162
+ """Returns the child of the object that meets the specified conditions."""
163
+
164
+ data = commands.FindObjectFromObject.run(self._connection,
165
+ by, value, camera_by, camera_value, enabled, self)
166
+
167
+ if data is None:
168
+ return None
169
+
170
+ alt_object = AltObject(self, data)
171
+
172
+ return alt_object
173
+
161
174
  def get_all_components(self):
162
175
  """Returns all components."""
163
176
 
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -27,3 +27,4 @@ from alttester.commands.ObjectCommands.pointer_up import *
27
27
  from alttester.commands.ObjectCommands.set_component_property import *
28
28
  from alttester.commands.ObjectCommands.tap_element import *
29
29
  from alttester.commands.ObjectCommands.click_element import *
30
+ from alttester.commands.ObjectCommands.find_object_from_object import *
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -0,0 +1,63 @@
1
+ """
2
+ Copyright(C) 2025 Altom Consulting
3
+
4
+ This program is free software: you can redistribute it and/or modify
5
+ it under the terms of the GNU General Public License as published by
6
+ the Free Software Foundation, either version 3 of the License, or
7
+ (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU General Public License for more details.
13
+
14
+ You should have received a copy of the GNU General Public License
15
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
16
+ """
17
+
18
+ from alttester.commands.base_command import BaseCommand
19
+ from alttester.exceptions import InvalidParameterTypeException
20
+ from alttester.by import By
21
+
22
+
23
+ class FindObjectFromObject(BaseCommand):
24
+
25
+ def __init__(self, connection, by, value, camera_by, camera_value, enabled, alt_object):
26
+ super().__init__(connection, "findObject")
27
+
28
+ if by not in By:
29
+ raise InvalidParameterTypeException(
30
+ parameter_name="by",
31
+ expected_types=[By],
32
+ received_type=type(by)
33
+ )
34
+
35
+ if camera_by not in By:
36
+ raise InvalidParameterTypeException(
37
+ parameter_name="camera_by",
38
+ expected_types=[By],
39
+ received_type=type(camera_by)
40
+ )
41
+
42
+ self.by = by
43
+ self.value = value
44
+ self.camera_by = camera_by
45
+ self.camera_value = camera_value
46
+ self.enabled = enabled
47
+ self.alt_object = alt_object
48
+
49
+ @property
50
+ def _parameters(self):
51
+ parameters = super()._parameters
52
+ parameters.update(**{
53
+ "by": str(self.by),
54
+ "path": self.get_path_from_object(self.alt_object, self.by, self.value),
55
+ "cameraBy": str(self.camera_by),
56
+ "cameraPath": self.get_path(self.camera_by, self.camera_value),
57
+ "enabled": self.enabled,
58
+ })
59
+
60
+ return parameters
61
+
62
+ def execute(self):
63
+ return self.send()
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -100,6 +100,22 @@ class Command(metaclass=abc.ABCMeta):
100
100
  if by == By.PATH:
101
101
  return value
102
102
 
103
+ def get_path_from_object(self, obj, by, value):
104
+ if by == By.TAG:
105
+ return "//*[@id={}]//*[@tag={}]".format(obj.id, value)
106
+ if by == By.LAYER:
107
+ return "//*[@id={}]//*[@layer={}]".format(obj.id, value)
108
+ if by == By.NAME:
109
+ return "//*[@id={}]//{}".format(obj.id, value)
110
+ if by == By.COMPONENT:
111
+ return "//*[@id={}]//*[@component={}]".format(obj.id, value)
112
+ if by == By.PATH:
113
+ return "//*[@id={}]{}".format(obj.id, value)
114
+ if by == By.ID:
115
+ return "//*[@id={}]//*[@id={}]".format(obj.id, value)
116
+ if by == By.TEXT:
117
+ return "//*[@id={}]//*[@text={}]".format(obj.id, value)
118
+
103
119
  def get_path_contains(self, by, value):
104
120
  if by == By.TAG:
105
121
  return "//*[contains(@tag,{})]".format(value)
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,6 +1,6 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
3
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
+ Copyright(C) 2025 Altom Consulting
4
4
 
5
5
  This program is free software: you can redistribute it and/or modify
6
6
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -474,3 +474,38 @@ class TestScene01Part2:
474
474
  countKeyDown = self.alt_driver.find_object(By.NAME, "AltTesterPrefab").get_component_property(
475
475
  "Input", "_keyCodesPressed.Count", "AltTester.AltTesterUnitySDK.InputModule")
476
476
  assert 0 == countKeyDown
477
+
478
+ def test_find_object_in_object_by_tag(self):
479
+ parent = self.alt_driver.find_object(By.NAME, "Canvas")
480
+ child = parent.find_object_from_object(By.TAG, "Finish")
481
+ assert child.name == "Button"
482
+
483
+ def test_find_object_in_object_by_layer(self):
484
+ parent = self.alt_driver.find_object(By.NAME, "Canvas")
485
+ child = parent.find_object_from_object(By.LAYER, "ButtonLayer")
486
+ assert child.name == "Button"
487
+
488
+ def test_find_object_in_object_by_name(self):
489
+ parent = self.alt_driver.find_object(By.NAME, "Canvas")
490
+ child = parent.find_object_from_object(By.NAME, "Button")
491
+ assert child.name == "Button"
492
+
493
+ def test_find_object_in_object_by_component(self):
494
+ parent = self.alt_driver.find_object(By.NAME, "Canvas")
495
+ child = parent.find_object_from_object(By.COMPONENT, "Button")
496
+ assert child.name == "UIButton"
497
+
498
+ def test_find_object_in_object_by_path(self):
499
+ parent = self.alt_driver.find_object(By.NAME, "Canvas")
500
+ child = parent.find_object_from_object(By.PATH, "/Button")
501
+ assert child.name == "Button"
502
+
503
+ def test_find_object_in_object_by_id(self):
504
+ parent = self.alt_driver.find_object(By.NAME, "Canvas")
505
+ child = parent.find_object_from_object(By.ID, "049eccc5-b072-468b-83bf-119d868ca311")
506
+ assert child.name == "Button"
507
+
508
+ def test_find_object_in_object_by_text(self):
509
+ parent = self.alt_driver.find_object(By.NAME, "Canvas")
510
+ child = parent.find_object_from_object(By.TEXT, "Change Camera Mode")
511
+ assert child.name == "Text"
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright(C) 2024 Altom Consulting
2
+ Copyright(C) 2025 Altom Consulting
3
3
 
4
4
  This program is free software: you can redistribute it and/or modify
5
5
  it under the terms of the GNU General Public License as published by