robo_appian 0.0.2__py3-none-any.whl → 0.0.4__py3-none-any.whl

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.

Potentially problematic release.


This version of robo_appian might be problematic. Click here for more details.

Files changed (39) hide show
  1. robo_appian/__init__.py +13 -1
  2. robo_appian/utils/__init__.py +1 -0
  3. robo_appian/utils/components/ButtonUtils.pyc +0 -0
  4. robo_appian/utils/components/ComponentUtils.pyc +0 -0
  5. robo_appian/utils/components/DateUtils.pyc +0 -0
  6. robo_appian/utils/components/DropdownUtils.pyc +0 -0
  7. robo_appian/utils/components/InputUtils.pyc +0 -0
  8. robo_appian/utils/components/LabelUtils.pyc +0 -0
  9. robo_appian/utils/components/LinkUtils.pyc +0 -0
  10. robo_appian/utils/components/TabUtils.pyc +0 -0
  11. robo_appian/utils/components/TableUtils.pyc +0 -0
  12. robo_appian/utils/components/__init__.py +1 -0
  13. robo_appian/utils/controllers/ComponentDriver.pyc +0 -0
  14. robo_appian/utils/controllers/__init__.py +1 -0
  15. robo_appian/utils/exceptions/MyCustomError.pyc +0 -0
  16. robo_appian/utils/exceptions/__init__.py +1 -0
  17. robo_appian-0.0.4.dist-info/METADATA +163 -0
  18. robo_appian-0.0.4.dist-info/RECORD +37 -0
  19. {robo_appian-0.0.2.dist-info → robo_appian-0.0.4.dist-info}/WHEEL +2 -1
  20. robo_appian-0.0.4.dist-info/top_level.txt +2 -0
  21. robo_appian_source_backup/__init__.py +23 -0
  22. robo_appian_source_backup/utils/__init__.py +0 -0
  23. {robo_appian → robo_appian_source_backup}/utils/components/DropdownUtils.py +8 -8
  24. {robo_appian → robo_appian_source_backup}/utils/components/InputUtils.py +8 -4
  25. robo_appian_source_backup/utils/components/__init__.py +0 -0
  26. robo_appian_source_backup/utils/controllers/__init__.py +0 -0
  27. robo_appian_source_backup/utils/exceptions/__init__.py +0 -0
  28. robo_appian-0.0.2.dist-info/METADATA +0 -91
  29. robo_appian-0.0.2.dist-info/RECORD +0 -20
  30. {robo_appian-0.0.2.dist-info → robo_appian-0.0.4.dist-info/licenses}/LICENSE +0 -0
  31. {robo_appian → robo_appian_source_backup}/utils/components/ButtonUtils.py +0 -0
  32. {robo_appian → robo_appian_source_backup}/utils/components/ComponentUtils.py +0 -0
  33. {robo_appian → robo_appian_source_backup}/utils/components/DateUtils.py +0 -0
  34. {robo_appian → robo_appian_source_backup}/utils/components/LabelUtils.py +0 -0
  35. {robo_appian → robo_appian_source_backup}/utils/components/LinkUtils.py +0 -0
  36. {robo_appian → robo_appian_source_backup}/utils/components/TabUtils.py +0 -0
  37. {robo_appian → robo_appian_source_backup}/utils/components/TableUtils.py +0 -0
  38. {robo_appian → robo_appian_source_backup}/utils/controllers/ComponentDriver.py +0 -0
  39. {robo_appian → robo_appian_source_backup}/utils/exceptions/MyCustomError.py +0 -0
robo_appian/__init__.py CHANGED
@@ -8,4 +8,16 @@ from robo_appian.utils.components.LinkUtils import LinkUtils
8
8
  from robo_appian.utils.components.TableUtils import TableUtils
9
9
  from robo_appian.utils.components.TabUtils import TabUtils
10
10
 
11
- __version__ = "0.1.0"
11
+ __version__ = "0.0.2"
12
+
13
+ __all__ = [
14
+ "ButtonUtils",
15
+ "ComponentUtils",
16
+ "DateUtils",
17
+ "DropdownUtils",
18
+ "InputUtils",
19
+ "LabelUtils",
20
+ "LinkUtils",
21
+ "TableUtils",
22
+ "TabUtils"
23
+ ]
@@ -0,0 +1 @@
1
+ # Bytecode package
@@ -0,0 +1 @@
1
+ # Bytecode package
@@ -0,0 +1 @@
1
+ # Bytecode package
@@ -0,0 +1 @@
1
+ # Bytecode package
@@ -0,0 +1,163 @@
1
+ Metadata-Version: 2.4
2
+ Name: robo_appian
3
+ Version: 0.0.4
4
+ Summary: Selenium-based automation utilities for Appian applications
5
+ Home-page: https://github.com/yourusername/robo_appian
6
+ Author: Your Name
7
+ Author-email: your.email@example.com
8
+ Project-URL: Bug Reports, https://github.com/yourusername/robo_appian/issues
9
+ Project-URL: Source, https://github.com/yourusername/robo_appian
10
+ Project-URL: Documentation, https://robo-appian.readthedocs.io/
11
+ Keywords: selenium,automation,testing,appian,ui
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Topic :: Software Development :: Testing
15
+ Classifier: Topic :: Software Development :: Quality Assurance
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Requires-Python: >=3.8
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: selenium>=4.34.0
27
+ Requires-Dist: requests>=2.25.0
28
+ Requires-Dist: numpy>=1.21.0
29
+ Dynamic: author
30
+ Dynamic: author-email
31
+ Dynamic: classifier
32
+ Dynamic: description
33
+ Dynamic: description-content-type
34
+ Dynamic: home-page
35
+ Dynamic: keywords
36
+ Dynamic: license-file
37
+ Dynamic: project-url
38
+ Dynamic: requires-dist
39
+ Dynamic: requires-python
40
+ Dynamic: summary
41
+
42
+ # Robo Appian
43
+
44
+ **Automate your Appian code testing with Python. Boost quality, save time.**
45
+
46
+ [![PyPI version](https://badge.fury.io/py/robo-appian.svg)](https://badge.fury.io/py/robo-appian)
47
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
48
+ [![Documentation](https://img.shields.io/badge/docs-mkdocs-blue.svg)](https://dinilmithra.github.io/robo_appian/)
49
+
50
+ ## 🚀 Quick Start
51
+
52
+ ### Installation
53
+
54
+ ```bash
55
+ pip install robo-appian
56
+ ```
57
+
58
+ ### Basic Usage
59
+
60
+ ```python
61
+ from selenium import webdriver
62
+ from selenium.webdriver.support.ui import WebDriverWait
63
+ from robo_appian import ButtonUtils, InputUtils, TableUtils
64
+
65
+ # Setup your driver
66
+ driver = webdriver.Chrome()
67
+ wait = WebDriverWait(driver, 10)
68
+
69
+ # Interact with Appian components
70
+ ButtonUtils.click(wait, "Submit")
71
+ InputUtils.set_text(wait, "Username", "john.doe")
72
+ TableUtils.click_cell_link(wait, "Actions", 1, "Edit")
73
+ ```
74
+
75
+ ## 📚 Features
76
+
77
+ ### Components
78
+ - **ButtonUtils**: Find and click buttons
79
+ - **DateUtils**: Interact with date fields and date pickers
80
+ - **DropdownUtils**: Interact with dropdown/select components
81
+ - **InputUtils**: Interact with input fields and text areas
82
+ - **LabelUtils**: Find and interact with labels
83
+ - **LinkUtils**: Click links and navigate
84
+ - **TableUtils**: Interact with tables and grids
85
+ - **TabUtils**: Switch between tabs
86
+ - **ComponentUtils**: General component utilities
87
+
88
+ ### Controllers
89
+ - **ComponentDriver**: High-level interface for component interaction
90
+
91
+ ### Exceptions
92
+ - **MyCustomError**: Custom exceptions for better error handling
93
+
94
+ ## 📖 Documentation
95
+
96
+ Visit our [full documentation](https://dinilmithra.github.io/robo_appian/) for:
97
+ - Detailed API reference
98
+ - Complete examples and tutorials
99
+ - Installation guide
100
+ - Best practices
101
+
102
+ ## 🛠️ Requirements
103
+
104
+ - Python 3.12+
105
+ - Selenium WebDriver 4.34.0+
106
+ - Compatible web browser (Chrome, Firefox, etc.)
107
+
108
+ ## 🤝 Contributing
109
+
110
+ Contributions are welcome! Please feel free to submit a Pull Request.
111
+
112
+ ## 📄 License
113
+
114
+ This project is licensed under the MIT License.
115
+
116
+ ## 🔗 Links
117
+
118
+ - [Documentation](https://dinilmithra.github.io/robo_appian/)
119
+ - [PyPI Package](https://pypi.org/project/robo-appian/)
120
+ - [GitHub Repository](https://github.com/dinilmithra/robo_appian)
121
+ ButtonUtils, ComponentUtils, DateUtils, DropdownUtils, InputUtils,
122
+ LabelUtils, LinkUtils, TableUtils, TabUtils
123
+ )
124
+
125
+ # Example: Set a Date Value
126
+ DateUtils.set_date_value("date_field_id", "2023-10-01")
127
+
128
+ # Example: Click a Button
129
+ ButtonUtils.click_button("submit_button_id")
130
+
131
+ # Example: Select a Dropdown Value
132
+ DropdownUtils.select_value("dropdown_id", "Option 1")
133
+
134
+ # Example: Enter Text in an Input Field
135
+ InputUtils.enter_text("input_field_id", "Sample Text")
136
+
137
+ # Example: Click a Link
138
+ LinkUtils.click_link("link_id")
139
+
140
+ # Example: Click a Tab
141
+ TabUtils.click_tab("tab_id")
142
+
143
+ # Example: Get a Table Cell Value
144
+ TableUtils.get_cell_value("table_id", 1, 2) # Row 1, Column 2
145
+
146
+ # Example: Get a Label Value
147
+ LabelUtils.get_label_value("label_id")
148
+
149
+ # Example: Get a Component Value
150
+ ComponentUtils.get_component_value("component_id")
151
+
152
+ # Example: Use the Component Driver
153
+ from robo_appian.utils.controllers.ComponentDriver import ComponentDriver
154
+ ComponentDriver.execute(wait, "Button", "Click", "Submit", None)
155
+
156
+ ## Dependencies
157
+
158
+ Python >= 3.8
159
+ Uses selenium
160
+
161
+ ## License
162
+
163
+ MIT License. See LICENSE.
@@ -0,0 +1,37 @@
1
+ robo_appian/__init__.py,sha256=AiMpl0fcPrlwMyUH0ZRzVYAlv4WY6e225XQCMuJa0Zk,779
2
+ robo_appian/utils/__init__.py,sha256=GqOJu-ZZRLzA9Nby6uXo82hxkSOPW_ZxBtMCn0xgoB8,19
3
+ robo_appian/utils/components/ButtonUtils.pyc,sha256=J90p3zU4Q7vgklQZvLk7-4v-kosISmnyGYcFeoTiOdg,1919
4
+ robo_appian/utils/components/ComponentUtils.pyc,sha256=Uw3oEqCJ_8rgZpfs0hBqYJkwiaCcdJxpWtbdVSAwUiw,4579
5
+ robo_appian/utils/components/DateUtils.pyc,sha256=O8q1YI8elSEJJaa_rw7msop9GVSTBRF7BGFp_pD64O8,2852
6
+ robo_appian/utils/components/DropdownUtils.pyc,sha256=nWNngNDP52jPNw27EkbN9GSAIf_4YeCcfNcprCr4t-A,4334
7
+ robo_appian/utils/components/InputUtils.pyc,sha256=tj7K8cbzwKxktSEW7-yRcwaPVlIdQGNToJIcdfigHmg,4530
8
+ robo_appian/utils/components/LabelUtils.pyc,sha256=EBWhbr1xHRttUjG2o3YGmDMpc36g0RcHCk3ZbyAjvks,1086
9
+ robo_appian/utils/components/LinkUtils.pyc,sha256=ojrwAHobkXBLFRTOUC5KnDhNPjSFymcfXd_Ug33ICJM,1133
10
+ robo_appian/utils/components/TabUtils.pyc,sha256=cWs1KGtMkb6pkfXDsVvp6oHXVMRiKwTEoqWMF99lohI,1494
11
+ robo_appian/utils/components/TableUtils.pyc,sha256=2nyaYzsOcYuspRf-Hg8-8ZB0yJ8qlN1dCLqkB2ulpmY,4532
12
+ robo_appian/utils/components/__init__.py,sha256=GqOJu-ZZRLzA9Nby6uXo82hxkSOPW_ZxBtMCn0xgoB8,19
13
+ robo_appian/utils/controllers/ComponentDriver.pyc,sha256=VdV-KUlG6REm6OSJ4uDlMEcE6opRbgDIJexI7jCD-ks,2983
14
+ robo_appian/utils/controllers/__init__.py,sha256=GqOJu-ZZRLzA9Nby6uXo82hxkSOPW_ZxBtMCn0xgoB8,19
15
+ robo_appian/utils/exceptions/MyCustomError.pyc,sha256=duaUZ7I3lL9L5-LOKBUkLyRuGAUIVjoX5oWsDzCodlM,672
16
+ robo_appian/utils/exceptions/__init__.py,sha256=GqOJu-ZZRLzA9Nby6uXo82hxkSOPW_ZxBtMCn0xgoB8,19
17
+ robo_appian-0.0.4.dist-info/licenses/LICENSE,sha256=g-xR4dRa9_4iFkMoJmED-wE-J5hoxbk3105Knhfpjm0,1068
18
+ robo_appian_source_backup/__init__.py,sha256=AiMpl0fcPrlwMyUH0ZRzVYAlv4WY6e225XQCMuJa0Zk,779
19
+ robo_appian_source_backup/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ robo_appian_source_backup/utils/components/ButtonUtils.py,sha256=Go_F2yJbGHho06notteHU3kXAdpA9EvXw1zm4zp260s,2204
21
+ robo_appian_source_backup/utils/components/ComponentUtils.py,sha256=-6CSRa2mBCPt9BrKXXO1cP6IsZ6Tle1X3rlfoJZlpjc,11779
22
+ robo_appian_source_backup/utils/components/DateUtils.py,sha256=r-4XnuGwA_cSHjWQub7-qoQQ29eBsG14uumXZkXpcDI,4615
23
+ robo_appian_source_backup/utils/components/DropdownUtils.py,sha256=rIqkkJYYJnWsOOppMa-tHeQx9WGQYeNpBSJxnulFUH8,6369
24
+ robo_appian_source_backup/utils/components/InputUtils.py,sha256=tuyzWDhxXdHqJ3XGS8O1TA22CaNSLEDpKFWf0QSlsQA,7278
25
+ robo_appian_source_backup/utils/components/LabelUtils.py,sha256=5ovTy9OY-QtLS8UoBXeqi4MQDvlPqVWDnp7SIcXWkJw,1230
26
+ robo_appian_source_backup/utils/components/LinkUtils.py,sha256=T7dJ5xSXp436VXhczWrQHC13L5wXTXxxgAvBdyKuYM4,1420
27
+ robo_appian_source_backup/utils/components/TabUtils.py,sha256=_KsImdeVITxmotphaqVARwhOhAvs4CLWHlx9wr-qZTk,2070
28
+ robo_appian_source_backup/utils/components/TableUtils.py,sha256=W-5fpjRStCmSLlryeHvBiOH83qCXNHgeVukMS3iAs6o,8276
29
+ robo_appian_source_backup/utils/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ robo_appian_source_backup/utils/controllers/ComponentDriver.py,sha256=Lzhlf7W85FjZn_0j9eybrgC8wSCzUEvsAbgbGNvTMLY,4128
31
+ robo_appian_source_backup/utils/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
+ robo_appian_source_backup/utils/exceptions/MyCustomError.py,sha256=DVAkytXNNQNjqyTyCjk6FFd6fr3AsBe57Y19erDSqVs,222
33
+ robo_appian_source_backup/utils/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ robo_appian-0.0.4.dist-info/METADATA,sha256=LpZLjkHL-r978F_hEzlh-oHQ2HaOUpV0-RGJVZ_ZdQw,4880
35
+ robo_appian-0.0.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
36
+ robo_appian-0.0.4.dist-info/top_level.txt,sha256=UuP4kHKT_rk8Cj08kDZHMv-SMu-c1gouluxYURCUgtk,38
37
+ robo_appian-0.0.4.dist-info/RECORD,,
@@ -1,4 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ robo_appian
2
+ robo_appian_source_backup
@@ -0,0 +1,23 @@
1
+ from robo_appian.utils.components.ButtonUtils import ButtonUtils
2
+ from robo_appian.utils.components.ComponentUtils import ComponentUtils
3
+ from robo_appian.utils.components.DateUtils import DateUtils
4
+ from robo_appian.utils.components.DropdownUtils import DropdownUtils
5
+ from robo_appian.utils.components.InputUtils import InputUtils
6
+ from robo_appian.utils.components.LabelUtils import LabelUtils
7
+ from robo_appian.utils.components.LinkUtils import LinkUtils
8
+ from robo_appian.utils.components.TableUtils import TableUtils
9
+ from robo_appian.utils.components.TabUtils import TabUtils
10
+
11
+ __version__ = "0.0.2"
12
+
13
+ __all__ = [
14
+ "ButtonUtils",
15
+ "ComponentUtils",
16
+ "DateUtils",
17
+ "DropdownUtils",
18
+ "InputUtils",
19
+ "LabelUtils",
20
+ "LinkUtils",
21
+ "TableUtils",
22
+ "TabUtils"
23
+ ]
File without changes
@@ -45,15 +45,15 @@ class DropdownUtils:
45
45
  # It ensures that the dropdown is clickable and ready for interaction.
46
46
  # The dropdown component is expected to have a structure where the label is within a span inside a div.
47
47
 
48
- xpath = f'.//div[./div/span[normalize-space(text())="{dropdown_label}"]]/div/div/div/div[@role="combobox" and @tabindex="0"]'
48
+ # xpath = f'.//div[./div/span[normalize-space(text())="{dropdown_label}"]]/div/div/div/div[@role="combobox" and @tabindex="0"]'
49
+ # V0.0.4
50
+ xpath = f'.//div[./div/span[contains(normalize-space(text()), "{dropdown_label}")]]/div/div/div/div[@role="combobox" and @tabindex="0"][0]'
49
51
  component = wait.until(EC.element_to_be_clickable((By.XPATH, xpath)))
50
52
  return component
51
53
 
52
54
  @staticmethod
53
55
  def selectValueUsingComponent(
54
- wait: WebDriverWait,
55
- combobox: WebElement,
56
- value: str
56
+ wait: WebDriverWait, combobox: WebElement, value: str
57
57
  ) -> None:
58
58
  """
59
59
  Selects a value from a dropdown component using the provided combobox element.
@@ -74,7 +74,7 @@ class DropdownUtils:
74
74
  raise ValueError(f"Dropdown component object is not valid.")
75
75
 
76
76
  component: WebElement = combobox.find_element(By.XPATH, "./div/div") # type: ignore[reportUnknownMemberType]
77
- aria_controls = component.get_attribute("aria-controls") # type: ignore[reportUnknownMemberType]
77
+ aria_controls = component.get_attribute("aria-controls") # type: ignore[reportUnknownMemberType]
78
78
  component.click()
79
79
 
80
80
  xpath = f'.//div/ul[@id="{aria_controls}"]/li[./div[normalize-space(text())="{value}"]]'
@@ -100,7 +100,7 @@ class DropdownUtils:
100
100
  # and then clicks on the dropdown to display the options.
101
101
 
102
102
  combobox = DropdownUtils.findDropdownEnabled(wait, label)
103
- aria_controls = combobox.get_attribute("aria-controls") # type: ignore[reportUnknownMemberType]
103
+ aria_controls = combobox.get_attribute("aria-controls") # type: ignore[reportUnknownMemberType]
104
104
  combobox.click()
105
105
 
106
106
  xpath = f'.//div/ul[@id="{aria_controls}"]/li[./div[normalize-space(text())="{value}"]]'
@@ -126,8 +126,8 @@ class DropdownUtils:
126
126
  # and the component ID, clicks on the dropdown to display the search input,
127
127
 
128
128
  component = DropdownUtils.findDropdownEnabled(wait, dropdown_label)
129
- component_id = component.get_attribute("aria-labelledby") # type: ignore[reportUnknownMemberType]
130
- aria_controls = component.get_attribute("aria-controls") # type: ignore[reportUnknownMemberType]
129
+ component_id = component.get_attribute("aria-labelledby") # type: ignore[reportUnknownMemberType]
130
+ aria_controls = component.get_attribute("aria-controls") # type: ignore[reportUnknownMemberType]
131
131
  component.click()
132
132
 
133
133
  input_component_id = str(component_id) + "_searchInput"
@@ -37,7 +37,9 @@ class InputUtils:
37
37
  # This method locates an input component that contains a label with the specified text.
38
38
  # It then retrieves the component's ID and uses it to find the actual input element.
39
39
 
40
- xpath = f".//div/label[text()='{label}']"
40
+ # xpath = f".//div/label[text()='{label}']"
41
+ # V0.0.4
42
+ xpath = f".//div/label[contains(normalize-space(text()), '{label}')]"
41
43
  component: WebElement = wait.until(
42
44
  EC.element_to_be_clickable((By.XPATH, xpath))
43
45
  )
@@ -175,9 +177,11 @@ class InputUtils:
175
177
  # and the component ID, clicks on the input to display the search input,
176
178
  # and sets the specified value in the search input field.
177
179
 
178
- xpath = (
179
- f".//div[./div/span[text()='{label}']]/div/div/div/input[@role='combobox']"
180
- )
180
+ # xpath = (
181
+ # f".//div[./div/span[text()='{label}']]/div/div/div/input[@role='combobox']"
182
+ # )
183
+ # V0.0.4
184
+ xpath = f".//div[./div/span[contains(normalize-space(text())='{label}']]/div/div/div/input[@role='combobox']"
181
185
  search_input_component = wait.until(
182
186
  EC.element_to_be_clickable((By.XPATH, xpath))
183
187
  )
File without changes
File without changes
@@ -1,91 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: robo_appian
3
- Version: 0.0.2
4
- Summary: Automate your Appian code testing with Python. Boost quality, save time.
5
- Author: Dinil Mithra
6
- Author-email: dinilmithra@mailme@gmail.com
7
- Requires-Python: >=3.12,<4.0
8
- Classifier: Operating System :: OS Independent
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: Programming Language :: Python :: 3.12
11
- Classifier: Programming Language :: Python :: 3.13
12
- Requires-Dist: numpy
13
- Requires-Dist: requests (>=2.25.1,<3.0.0)
14
- Requires-Dist: selenium (>=4.34.0)
15
- Project-URL: Homepage, https://github.com/dinilmithra/robo_appian
16
- Project-URL: Repository, https://github.com/dinilmithra/robo_appian.git
17
- Description-Content-Type: text/markdown
18
-
19
- # Robo Appian
20
-
21
- Python library for automating Appian web UI test cases!
22
-
23
- # Modules
24
- ## Components
25
-
26
- ButtonUtils: Find and click buttons.
27
- DateUtils: Interact with date fields.
28
- DropdownUtils: Interact with dropdowns.
29
- InputUtils: Interact with input fields.
30
- LabelUtils: Find labels.
31
- LinkUtils: Click links.
32
- TableUtils: Interact with tables.
33
- TabUtils: Interact with tabs.
34
- ComponentUtils: General utilities for components (input, dropdown, tab, etc).
35
-
36
- ## Controllers
37
-
38
- ComponentDriver: High-level interface to execute actions on components.
39
-
40
- ## Exceptions
41
-
42
- MyCustomError: Custom exception for specific error conditions.
43
-
44
- # Usage
45
-
46
- Import the utilities in your test scripts:
47
-
48
- from robo_appian import (
49
- ButtonUtils, ComponentUtils, DateUtils, DropdownUtils, InputUtils,
50
- LabelUtils, LinkUtils, TableUtils, TabUtils
51
- )
52
-
53
- # Example: Set a Date Value
54
- DateUtils.set_date_value("date_field_id", "2023-10-01")
55
-
56
- # Example: Click a Button
57
- ButtonUtils.click_button("submit_button_id")
58
-
59
- # Example: Select a Dropdown Value
60
- DropdownUtils.select_value("dropdown_id", "Option 1")
61
-
62
- # Example: Enter Text in an Input Field
63
- InputUtils.enter_text("input_field_id", "Sample Text")
64
-
65
- # Example: Click a Link
66
- LinkUtils.click_link("link_id")
67
-
68
- # Example: Click a Tab
69
- TabUtils.click_tab("tab_id")
70
-
71
- # Example: Get a Table Cell Value
72
- TableUtils.get_cell_value("table_id", 1, 2) # Row 1, Column 2
73
-
74
- # Example: Get a Label Value
75
- LabelUtils.get_label_value("label_id")
76
-
77
- # Example: Get a Component Value
78
- ComponentUtils.get_component_value("component_id")
79
-
80
- # Example: Use the Component Driver
81
- from robo_appian.utils.controllers.ComponentDriver import ComponentDriver
82
- ComponentDriver.execute(wait, "Button", "Click", "Submit", None)
83
-
84
- ## Dependencies
85
-
86
- Python >= 3.8
87
- Uses selenium
88
-
89
- ## License
90
-
91
- MIT License. See LICENSE.
@@ -1,20 +0,0 @@
1
- robo_appian/__init__.py,sha256=4pSYFFKgpWa9288-AzvWeATnCKkRy7zwFUjl9z-5FlY,598
2
- robo_appian/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- robo_appian/utils/components/ButtonUtils.py,sha256=Go_F2yJbGHho06notteHU3kXAdpA9EvXw1zm4zp260s,2204
4
- robo_appian/utils/components/ComponentUtils.py,sha256=-6CSRa2mBCPt9BrKXXO1cP6IsZ6Tle1X3rlfoJZlpjc,11779
5
- robo_appian/utils/components/DateUtils.py,sha256=r-4XnuGwA_cSHjWQub7-qoQQ29eBsG14uumXZkXpcDI,4615
6
- robo_appian/utils/components/DropdownUtils.py,sha256=GbH5iHvjunENhm5K4WUXEQhmsEtSBn54Z04Ow1QDEwE,6216
7
- robo_appian/utils/components/InputUtils.py,sha256=AlVbSNMXgbGa1eoTWSGJlOoaQxZxgsSKkhsA__FHRVA,7032
8
- robo_appian/utils/components/LabelUtils.py,sha256=5ovTy9OY-QtLS8UoBXeqi4MQDvlPqVWDnp7SIcXWkJw,1230
9
- robo_appian/utils/components/LinkUtils.py,sha256=T7dJ5xSXp436VXhczWrQHC13L5wXTXxxgAvBdyKuYM4,1420
10
- robo_appian/utils/components/TabUtils.py,sha256=_KsImdeVITxmotphaqVARwhOhAvs4CLWHlx9wr-qZTk,2070
11
- robo_appian/utils/components/TableUtils.py,sha256=W-5fpjRStCmSLlryeHvBiOH83qCXNHgeVukMS3iAs6o,8276
12
- robo_appian/utils/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- robo_appian/utils/controllers/ComponentDriver.py,sha256=Lzhlf7W85FjZn_0j9eybrgC8wSCzUEvsAbgbGNvTMLY,4128
14
- robo_appian/utils/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- robo_appian/utils/exceptions/MyCustomError.py,sha256=DVAkytXNNQNjqyTyCjk6FFd6fr3AsBe57Y19erDSqVs,222
16
- robo_appian/utils/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- robo_appian-0.0.2.dist-info/LICENSE,sha256=g-xR4dRa9_4iFkMoJmED-wE-J5hoxbk3105Knhfpjm0,1068
18
- robo_appian-0.0.2.dist-info/METADATA,sha256=fWsaoCIEmT_akMZtWC_Xdohimova8ynoQEIIcqr1PmI,2586
19
- robo_appian-0.0.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
20
- robo_appian-0.0.2.dist-info/RECORD,,