toolium 3.8.3__tar.gz → 3.9.0.dev0__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 (75) hide show
  1. {toolium-3.8.3 → toolium-3.9.0.dev0}/CHANGELOG.rst +1078 -1061
  2. {toolium-3.8.3 → toolium-3.9.0.dev0}/LICENSE +202 -202
  3. {toolium-3.8.3 → toolium-3.9.0.dev0}/MANIFEST.in +7 -7
  4. {toolium-3.8.3/toolium.egg-info → toolium-3.9.0.dev0}/PKG-INFO +174 -175
  5. {toolium-3.8.3 → toolium-3.9.0.dev0}/README.rst +112 -112
  6. toolium-3.9.0.dev0/VERSION +1 -0
  7. {toolium-3.8.3 → toolium-3.9.0.dev0}/pyproject.toml +149 -149
  8. {toolium-3.8.3 → toolium-3.9.0.dev0}/requirements.txt +8 -8
  9. {toolium-3.8.3 → toolium-3.9.0.dev0}/requirements_ai.txt +4 -4
  10. {toolium-3.8.3 → toolium-3.9.0.dev0}/requirements_dev.txt +12 -12
  11. {toolium-3.8.3 → toolium-3.9.0.dev0}/setup.cfg +7 -7
  12. {toolium-3.8.3 → toolium-3.9.0.dev0}/setup.py +27 -27
  13. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/behave/env_utils.py +363 -322
  14. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/behave/environment.py +338 -338
  15. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/config_driver.py +532 -532
  16. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/config_driver_playwright.py +290 -290
  17. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/config_files.py +68 -68
  18. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/config_parser.py +222 -222
  19. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/driver_wrapper.py +471 -471
  20. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/driver_wrappers_pool.py +414 -414
  21. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/jira.py +190 -190
  22. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/__init__.py +58 -58
  23. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/button_page_element.py +46 -46
  24. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/checkbox_page_element.py +53 -53
  25. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/group_page_element.py +86 -86
  26. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/input_radio_page_element.py +42 -42
  27. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/input_text_page_element.py +77 -77
  28. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/link_page_element.py +28 -28
  29. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/page_element.py +260 -260
  30. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/page_elements.py +185 -185
  31. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/playwright/__init__.py +22 -22
  32. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/playwright/button_page_element.py +35 -35
  33. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/playwright/input_text_page_element.py +68 -68
  34. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/playwright/page_element.py +64 -64
  35. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/playwright/text_page_element.py +27 -27
  36. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/select_page_element.py +46 -46
  37. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageelements/text_page_element.py +28 -28
  38. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageobjects/common_object.py +124 -124
  39. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageobjects/mobile_page_object.py +49 -49
  40. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageobjects/page_object.py +88 -88
  41. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pytest_fixtures.py +62 -62
  42. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/resources/VisualTests.css +82 -82
  43. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/resources/VisualTests.js +23 -23
  44. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/resources/VisualTestsTemplate.html +28 -28
  45. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/selenoid.py +296 -296
  46. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/test_cases.py +208 -219
  47. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/ai_utils/accuracy.py +306 -306
  48. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/ai_utils/ai_agent.py +128 -128
  49. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/ai_utils/evaluate_answer.py +244 -244
  50. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/ai_utils/openai.py +90 -90
  51. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/ai_utils/prompt_injection.py +68 -68
  52. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/ai_utils/spacy.py +100 -100
  53. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/ai_utils/text_analysis.py +117 -117
  54. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/ai_utils/text_readability.py +102 -102
  55. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/ai_utils/text_similarity.py +178 -178
  56. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/data_generator.py +133 -133
  57. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/dataset.py +951 -944
  58. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/download_files.py +243 -243
  59. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/driver_utils.py +433 -433
  60. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/driver_wait_utils.py +366 -366
  61. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/path_utils.py +52 -52
  62. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/poeditor.py +346 -346
  63. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/visual_test.py +502 -502
  64. {toolium-3.8.3 → toolium-3.9.0.dev0/toolium.egg-info}/PKG-INFO +174 -175
  65. toolium-3.8.3/VERSION +0 -1
  66. {toolium-3.8.3 → toolium-3.9.0.dev0}/requirements_playwright.txt +0 -0
  67. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/__init__.py +0 -0
  68. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/behave/__init__.py +0 -0
  69. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/pageobjects/__init__.py +0 -0
  70. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/__init__.py +0 -0
  71. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium/utils/ai_utils/__init__.py +0 -0
  72. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium.egg-info/SOURCES.txt +0 -0
  73. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium.egg-info/dependency_links.txt +0 -0
  74. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium.egg-info/requires.txt +0 -0
  75. {toolium-3.8.3 → toolium-3.9.0.dev0}/toolium.egg-info/top_level.txt +0 -0
@@ -1,1061 +1,1078 @@
1
- Toolium Changelog
2
- =================
3
-
4
- v3.8.3
5
- ------
6
-
7
- *Release date: 2026-07-15*
8
-
9
- - Fix `openai_request` to rename `azure_api_key` and `openai_api_key` parameters to `api_key` to avoid errors when Azure and OpenAI are created.
10
- - Add `openai_temperature` and `azure_temperature` parameters to be configurable in `toolium.cfg` file to set the temperature for OpenAI and Azure requests.
11
- - Generalize documentation for `openai_request` configuration.
12
-
13
- v3.8.2
14
- ------
15
-
16
- *Release date: 2026-07-13*
17
-
18
- - Update the `openai_request` method to centralize logic and allow loading the configuration from `toolium.cfg` file.
19
-
20
- v3.8.1
21
- ------
22
-
23
- *Release date: 2026-04-15*
24
-
25
- - Add token usage tracking to OpenAI requests
26
- - Add pytest and unittest runners documentation in `Docs <http://toolium.readthedocs.io/en/latest/tests_runners_integration.html>`_
27
- - Fix key error when a scenario with accuracy tag is skipped
28
-
29
- v3.8.0
30
- ------
31
-
32
- *Release date: 2026-03-13*
33
-
34
- - Add pyproject.toml file for packaging and publishing Toolium
35
- - Configure ruff for linting and formatting files, replacing flake8 and black
36
- - Add text analysis tool to get an overall match of a text against a list of expected characteristics
37
- using AI libraries that come with the `ai` extra dependency
38
- - Add langgraph methods to create a ReAct AI agent to test the behavior of other AI agents or LLMs
39
- - Add llm-as-a-judge methods to use an LLM to evaluate the answer of another LLM and give a similarity score based
40
- on the user's question and a reference answer
41
-
42
- v3.7.0
43
- ------
44
-
45
- *Release date: 2025-12-02*
46
-
47
- - Fix accuracy tag to exclude skipped executions from total executions count
48
- - Add `after_accuracy_scenario` hook to allow custom behavior after accuracy scenario execution
49
- - Add csv report for accuracy scenario results
50
- - Add text readability assessment function based on the AI libraries that come with the `ai` extra dependency
51
-
52
- v3.6.0
53
- ------
54
-
55
- *Release date: 2025-11-20*
56
-
57
- - Remove Python 3.9 support (Python 3.9 reached the end of its life on October 31st, 2025)
58
- - Remove xcuitest deprecated `get_window_size` method and replaced it with `get_window_rect` in all mobile actions
59
- - Add `SHARP` replacement, to convert [SHARP] to # character in behave steps parameters
60
- - Add text comparison methods based on AI libraries. To use them, install the `ai` extra dependency:
61
-
62
- .. code:: console
63
-
64
- $ pip install toolium[ai]
65
-
66
- - Add accuracy tags to behave scenarios using `@accuracy_<percent>_<executions>`, e.g. with `@accuracy_80_10` tag, the
67
- scenario is executed 10 times expecting 80% accuracy
68
- - Add accuracy data tags to behave scenarios using `@accuracy_data_<suffix>`, e.g. `@accuracy_data_greetings` for
69
- accuracy data with greetings suffix, that allows to execute accuracy scenarios with different data sets
70
-
71
- v3.5.0
72
- ------
73
-
74
- *Release date: 2025-07-29*
75
-
76
- - Add support for Python 3.13
77
- - Remove Python 3.8 support (Python 3.8 reached the end of its life on October 14th, 2024)
78
- - Add `LANG` replacement, to use different language translations. Example: [LANG:some_text::new_language]
79
- - Playwright installation is now optional, it can be installed with the `playwright` extra dependency. To install
80
- Toolium with Playwright support, use:
81
-
82
- .. code:: console
83
-
84
- $ pip install toolium[playwright]
85
-
86
- v3.4.0
87
- ------
88
-
89
- *Release date: 2025-03-06*
90
-
91
- - Now Playwright is available to run web tests instead of Selenium by configuring `web_library: playwright` in [Driver]
92
- section
93
- - Allow setting the number of decimal places for seconds when using the `[NOW]` replacement with a specific format
94
-
95
- v3.3.1
96
- ------
97
-
98
- *Release date: 2025-02-05*
99
-
100
- - Allow to save the diff image in jpg format for visual tests working with jpg
101
- - Fix the use of the # character in the actions defined in the feature description (Actions Before/After...)
102
-
103
- v3.3.0
104
- ------
105
-
106
- *Release date: 2024-11-26*
107
-
108
- - Allow negative indexes for list elements in context searches. Example: [CONTEXT:element.-1]
109
- - Add support for JSON strings to the `DICT` and `LIST`` replacement. Example: [DICT:{"key": true}], [LIST:[null]]
110
- - Add `REPLACE` replacement, to replace a substring with another. Example: [REPLACE:[CONTEXT:some_url]::https::http]
111
- - Add `TITLE` replacement, to apply Python's title() function. Example: [TITLE:the title]
112
- - Add `ROUND` replacement, float number to a string with the indicated number of decimals. Example: [ROUND:3.3333::2]
113
- - Remove accents from generated file names to avoid errors in some filesystems
114
- - Update Appium-Python-Client requirement to enable 3 and 4 versions
115
- - Deprecate set_text method in InputText class to make it compatible with Appium-Python-Client 3 and 4
116
-
117
- v3.2.0
118
- ------
119
-
120
- *Release date: 2024-09-13*
121
-
122
- - Add `run_storage` dictionary to context to store information during the whole test execution
123
- - Update current ChainMap context storages (context.storage, context.feature_storage and context.run_storage)
124
- - Allow to store values from steps into desire storage by using [key], [FEATURE:key] and [RUN:key]
125
-
126
- v3.1.5
127
- ------
128
-
129
- *Release date: 2024-07-15*
130
-
131
- - Fix `export_poeditor_project` method allowing empty export response
132
- - Add `key=value` expressions for selecting elements in the context storage
133
- - Upgrade Faker version to 25.9.*
134
- - Fix result for action before the feature with error and background to fail scenarios
135
-
136
- v3.1.4
137
- ------
138
-
139
- *Release date: 2024-03-25*
140
-
141
- - Add `ignore_empty` optional parameter to POEditor configuration to ignore empty translations
142
- - Ignore not found excluded elements in visual tests
143
- - Fix duration calling to Appium `swipe` method
144
- - Fix `[STRING_WITH_LENGTH_NN]` replacement for string with length inside a longer string
145
-
146
- v3.1.3
147
- ------
148
-
149
- *Release date: 2024-02-06*
150
-
151
- - Fix `PageElements` class initialization when custom page element classes don't have all optional attributes
152
-
153
- v3.1.2
154
- ------
155
-
156
- *Release date: 2024-02-05*
157
-
158
- - Upgrade Pillow version to 10.1.* to fix compatibility with Python 3.12
159
-
160
- v3.1.1
161
- ------
162
-
163
- *Release date: 2024-02-02*
164
-
165
- - Add support for Python 3.12
166
- - Upgrade Sphinx version from 4.* to 7.* to fix readthedocs theme format
167
- - Upgrade readthedocs-sphinx-search to 0.3.2 to fix security vulnerability
168
- - Do not log warning messages when toolium system properties are used
169
- - Allow to initialize a `PageElements` class with webview attributes
170
-
171
- v3.1.0
172
- ------
173
-
174
- *Release date: 2023-09-19*
175
-
176
- - Update `[CONTEXT:a.b.c]` replacement to allow lists access, e.g. [CONTEXT:list.1] to access the second element of list
177
- - Add capabilities configured in `[Capabilities]` section also to Appium tests to use `platformName` and `browserName`
178
- w3c capabilities instead of Appium ones
179
- - `platformVersion` Appium capability must be a string
180
- - Add optional parameter to `compare_downloaded_files` method to allow to compare files with different names
181
- - Remove Python 3.7 support (Python 3.7 reached the end of its life on June 27th, 2023)
182
- - Update _android_automatic_context_selection method to be compatible with latest chromedriver versions
183
-
184
- v3.0.2
185
- ------
186
-
187
- *Release date: 2023-06-08*
188
-
189
- - `context.storage` must be initialized before dynamic environment steps in `before_feature` method
190
- - Mark scenario as failed when a dynamic environment step fails in `before_scenario`
191
- - Mark all feature scenarios as failed when a dynamic environment step fails in `before_feature` and `after_feature`
192
- - Configure minimal Appium-Python-Client version to 2.3.0 to avoid import errors
193
-
194
- v3.0.1
195
- ------
196
-
197
- *Release date: 2023-05-09*
198
-
199
- - Allow to search in `context.storage` using `[CONTEXT:a.b.c]` replacement when `before_feature` method is not used
200
- - Execute after scenario methods also when a scenario is skipped to assure that scenario preconditions are cleaned
201
- - Fix `[LANG:key]` replacement bug when it contains carriage returns
202
- - `context.storage` must be initialized before dynamic environment steps in `before_scenario` method
203
- - Fix error in Python 3.11 executing nose2 tests
204
-
205
- v3.0.0
206
- ------
207
-
208
- *Release date: 2023-05-03*
209
-
210
- - Add support for Python 3.11
211
- - Add support for Selenium 4
212
- - Add support for Appium-Python-Client 2
213
- - Visual testing comparison has changed
214
-
215
- | It only needs PIL library to compare images and generate the differences images
216
- | Old PerceptualDiff and Magick engines have been removed
217
- | Config property `engine` in [VisualTests] section has been removed
218
- | Images distance calculation method has changed, it is recommended to review thresholds in tests
219
-
220
- - Now `gecko_driver_path`, `chrome_driver_path`, `explorer_driver_path` and `edge_driver_path` config properties
221
- in [Driver] section are optional, due to new SeleniumManager feature, that downloads drivers automatically
222
- - New optional config property `safari_driver_path` in [Driver] section to configure Safari driver
223
- - New optional config property `options` in [Chrome] section to configure Chrome options instead of using old
224
- property `goog:chromeOptions` in [Capabilities] section.
225
- - New optional config property `base_path` in [Server] section to allow using old Selenium 3 or Appium 1 remote servers
226
- - Remove support for lettuce tests
227
- - Remove deprecated parameter `context` from `map_param` and POEditor methods
228
- - Remove deprecated config property `restart_driver_fail` in [Driver] section
229
- - Remove deprecated environment variables `Section_option`, `Config_environment` and `env`
230
- - Update `[RANDOM_PHONE_NUMBER]` replacement using new `DataGenerator` class
231
- - Update `[CONTEXT:a.b.c]` replacement to search data in context, context.storage and context.feature_storage
232
- - Update `[CONTEXT:a.b.c]` replacement to allow dictionaries or classes in context fields
233
-
234
- v2.7.0
235
- ------
236
-
237
- *Release date: 2023-02-24*
238
-
239
- - Fix drivers not being closed in `after_feature` when errors occur during `before_feature` steps execution
240
- - Allow to add extensions to chrome options from properties file
241
-
242
- New config section [ChromeExtensions] with extensions file paths, e.g. 'firebug: resources/firebug-lite.crx'
243
-
244
- v2.6.3
245
- ------
246
-
247
- *Release date: 2022-12-09*
248
-
249
- - Fix error in Android automatic context selection when context does not contain pages
250
- - Remove Python 3.6 support (Python 3.6 reached the end of its life on December 23th, 2021)
251
-
252
- v2.6.2
253
- ------
254
-
255
- *Release date: 2022-10-18*
256
-
257
- - New param [UUID] in *replace_param* method to generate a v4 UUID
258
- - Improve POEditor error message when there are more than one project
259
-
260
- v2.6.1
261
- ------
262
-
263
- *Release date: 2022-06-28*
264
-
265
- - Reference dotted keys when saving objects in context storage using [CONTEXT:a.b.c] formula
266
- - Fix Visual testing image size for MacOS Retina and mobile layout
267
-
268
- v2.6.0
269
- ------
270
-
271
- *Release date: 2022-04-29*
272
-
273
- - Update map_param method to allow recursive replacements
274
- - Update replace_param function to allow multiple date expressions in the same param
275
- - Fix error message to show parent locator instead of object reference when an element is not found
276
- - Update replace_param function to allow NOW datetime expressions with arbitrary formats accepted by datetime.strftime
277
-
278
- v2.5.0
279
- ------
280
-
281
- *Release date: 2022-03-16*
282
-
283
- - Update map_param method to use dataset global variables instead of context parameter
284
- - Dataset variables needed for TOOLIUM, CONTEXT and POE replacements are set automatically
285
- - Make POEditor methods independent of behave context
286
- - Fix POEditor bug writing to file when terms contain slashes: from 'http:\/\/www.example.com' to 'http://www.example.com'
287
-
288
- v2.4.0
289
- ------
290
-
291
- *Release date: 2022-03-04*
292
-
293
- - Add set_file_path and set_base64_path functions to dataset module, to set base paths for FILE and BASE64 mappings
294
- - Visual testing baseline images are copied to output folder to facilitate report visualization in Jenkins
295
- - Visual testing output folder is copied to *latest* folder to allow HTML Publisher Jenkins plugin to publish it
296
- - Fix detection of POEditor configuration not available
297
- - Fix indent error in Driver Configuration documentation
298
-
299
- v2.3.0
300
- ------
301
-
302
- *Release date: 2022-02-03*
303
-
304
- - Add missing param in download_videos method to fix error downloading videos from a remote server
305
- - Add map_param function to dataset module
306
- - New param [RANDOM_PHONE_NUMBER] in *replace_param* method to generate random phone number
307
-
308
- v2.2.1
309
- ------
310
-
311
- *Release date: 2022-01-11*
312
-
313
- - Add support for Python 3.10
314
- - Add support for Appium-Python-Client 1.3.0
315
- - Remove Python 3.5 support (Python 3.5 reached the end of its life on September 13th, 2020)
316
- - Move code quality check from codacy to codeclimate
317
- - Upgrade Sphinx version from 3.* to 4.* to fix doc compilation errors in readthedocs
318
-
319
- v2.2.0
320
- ------
321
-
322
- *Release date: 2021-11-03*
323
-
324
- - Add JSON object/list conversion to Python dict/list in the type inference logic of the *replace_param* function
325
- - Add *finalize_properties_configuration* method in *DriverWrapper* class to allow the modification of config properties
326
- upon initialization programmatically before driver creation
327
- - Properties values configured by properties files can be overridden with system properties named
328
- *TOOLIUM_[SECTION]_[OPTION]*, moreover these system properties can be used to add new properties that do not exist in
329
- properties files
330
- - Configuration system properties have been renamed. The old property names are deprecated but they can still be used.
331
-
332
- | Deprecated property name -> New property name
333
- | Config_environment -> TOOLIUM_CONFIG_ENVIRONMENT
334
- | Output_directory -> TOOLIUM_OUTPUT_DIRECTORY
335
- | Output_log_filename -> TOOLIUM_OUTPUT_LOG_FILENAME
336
- | Config_directory -> TOOLIUM_CONFIG_DIRECTORY
337
- | Config_log_filename -> TOOLIUM_CONFIG_LOG_FILENAME
338
- | Config_prop_filenames -> TOOLIUM_CONFIG_PROPERTIES_FILENAMES
339
- | Visual_baseline_directory -> TOOLIUM_VISUAL_BASELINE_DIRECTORY
340
-
341
- - Behave user property 'Config_environment' is deprecated, use 'TOOLIUM_CONFIG_ENVIRONMENT' instead:
342
-
343
- .. code:: console
344
-
345
- $ behave -D TOOLIUM_CONFIG_ENVIRONMENT=android
346
-
347
- v2.1.1
348
- ------
349
-
350
- *Release date: 2021-09-22*
351
-
352
- - Avoid to overwrite parent in group elements when a custom parent is defined
353
- - Fix Chrome options to allow to configure them at the same time in *Chrome* sections and in *goog:chromeOptions*
354
- capability
355
-
356
- v2.1.0
357
- ------
358
-
359
- *Release date: 2021-07-05*
360
-
361
- - Add type inference and improve replacement logic in *replace_param* function
362
- - Remove *generate_fixed_length_param* function, as all possible transformations are available in *replace_param*
363
- - Fix docutils development dependency to version 0.16
364
- - Fix InputText element class getting the text value for mobile apps in webview mode
365
-
366
- v2.0.0
367
- ------
368
-
369
- *Release date: 2021-06-15*
370
-
371
- - Remove Python 2.7, 3.3 and 3.4 support
372
- - Update deprecated methods to fix warnings in python3 execution
373
- - Move *get_valid_filename* and *makedirs_safe* methods from *toolium.path_utils* to *toolium.utils.path_utils*
374
- - Move *Utils* class from *toolium.utils* to *toolium.utils.driver_utils*
375
- - Fix report when an error happens in the Dynamic Environment
376
- - New param [TIMESTAMP] in *replace_param* method to generate timestamp value of the actual moment
377
-
378
- v1.9.2
379
- ------
380
-
381
- *Release date: 2021-04-09*
382
-
383
- - Fix error in *deepcopy* method of *ExtendedConfigParser* class when two config properties have colon in name
384
-
385
- v1.9.1
386
- ------
387
-
388
- *Release date: 2021-03-11*
389
-
390
- - Added new method wait_until_ajax_request_completed to driver utils class
391
- - Move CI from Travis to Github Actions
392
- - Fix string conversion in dataset utilities
393
- - Add upper/lower conversion to replace param method
394
-
395
- v1.9.0
396
- ------
397
-
398
- *Release date: 2021-03-02*
399
-
400
- - Added utilities to download files
401
- - Get text for InputText element in mobile tests
402
- - Add *translate_config_variables* method to *ExtendedConfigParser* class to translate config variables in a string
403
- - Add dataset utilities
404
- - Manage multiples webviews for mobile tests
405
-
406
- v1.8.2
407
- ------
408
-
409
- *Release date: 2020-12-17*
410
-
411
- - Add support for python 3.9
412
- - Add *get_driver_name* method to driver utils class
413
- - Add doc about how to configure Firefox device mode
414
- - Fix driver log types documentation
415
-
416
- v1.8.1
417
- ------
418
-
419
- *Release date: 2020-11-02*
420
-
421
- - Create logs folder before downloading driver logs
422
- - Add *set_focus* method to common elements and input text elements
423
- - Fix driver log types list in local executions
424
- - Fix automatic_context_selection for group element
425
-
426
- v1.8.0
427
- ------
428
-
429
- *Release date: 2020-10-05*
430
-
431
- - Allow lists in config properties instead of converting them to strings
432
- - Fix typo in documentation for configuration Server log types
433
- - Include click action in InputText element
434
- - New config property 'automatic_context_selection' in [Driver] section for mobile tests with webview
435
-
436
- | If it's false, the WebElement is searched using always NATIVE context
437
- | If it's true, the WebElement is searched using context NATIVE or WEBVIEW depeding of the webview attribute value
438
-
439
- v1.7.2
440
- ------
441
-
442
- *Release date: 2020-09-01*
443
-
444
- - Move utils.py and path_utils.py files to utils folder maintaining backwards compatibility
445
- - Fix input text when element has a shadowroot and text contains quotation marks
446
- - New config property 'log_types' in [Server] section to configure webdriver log types that should be downloaded
447
-
448
- v1.7.1
449
- ------
450
-
451
- *Release date: 2020-05-18*
452
-
453
- - Fix Appium dependency conflict, current allowed versions: from 0.24 to 0.52
454
-
455
- v1.7.0
456
- ------
457
-
458
- *Release date: 2020-05-11*
459
-
460
- - Fix to allow step's text (context.text) declaration into dynamic environment sections
461
- - Add `ssl` config property in [Server] section to allow using https in Selenium Grid url
462
- - Visual testing comparison must fail when baseline does not exist and save mode is disabled
463
- - Update dynamic environment behaviour to work as the behave's one, i.e. after scenario/feature actions are executed
464
- even when before scenario/feature actions fail
465
- - Fix unit tests to work without any additional dependencies
466
-
467
- v1.6.1
468
- ------
469
-
470
- *Release date: 2020-01-21*
471
-
472
- - Fix concurrent folder creation. Add *makedirs_safe* method to create a new folder.
473
-
474
- v1.6.0
475
- ------
476
-
477
- *Release date: 2020-01-15*
478
-
479
- - New config property 'binary' in [Chrome] section to configure the chrome binary path
480
- - Allow configuration properties with colon in name
481
-
482
- For instance, to set a capability with : in name, like:
483
-
484
- .. code:: console
485
-
486
- goog:loggingPrefs = "{'performance': 'ALL', 'browser': 'ALL', 'driver': 'ALL'}"
487
-
488
- Following property should be added in properties.cfg:
489
-
490
- .. code:: console
491
-
492
- [Capabilities]
493
- goog___loggingPrefs: {'performance': 'ALL', 'browser': 'ALL', 'driver': 'ALL'}
494
-
495
- - Add support for python 3.8
496
-
497
- v1.5.6
498
- ------
499
-
500
- *Release date: 2019-10-04*
501
-
502
- - Fix dynamic environment exit code when there are hook errors
503
-
504
- v1.5.5
505
- ------
506
-
507
- *Release date: 2019-07-29*
508
-
509
- - Fix screeninfo dependency to 0.3.1 version
510
-
511
- v1.5.4
512
- ------
513
-
514
- *Release date: 2019-07-22*
515
-
516
- - Add support to encapsulated elements (Shadowroot)
517
-
518
- | Only support CSS_SELECTOR locator
519
- | Input text page element fixed
520
- | It is not supported for list of elements yet
521
- | It is not supported for element find by parent yet
522
- | It is not supported nested encapsulation yet
523
-
524
- - Fix Selenium dependency conflict
525
-
526
- v1.5.3
527
- ------
528
-
529
- *Release date: 2019-04-05*
530
-
531
- - Fix error executing Appium locally
532
-
533
- v1.5.2
534
- ------
535
-
536
- *Release date: 2019-04-01*
537
-
538
- - Check if a GGR session (current) is still active
539
- - Download Selenoid logs files also when test fails
540
- - Fix utils.py wait functions' descriptions
541
- - Add new wait to utils.py in order to wait for an element not containing some text
542
-
543
- v1.5.1
544
- ------
545
-
546
- *Release date: 2019-03-18*
547
-
548
- - Download Selenoid video and logs files only in linux nodes if video or logs are enabled
549
- - Add a sleep between Selenoid retries when downloading files
550
- - Manage exceptions in dynamic environment to mark affected scenarios as failed
551
-
552
- v1.5.0
553
- ------
554
-
555
- *Release date: 2019-02-26*
556
-
557
- - Latest version of Appium can be used
558
- - Make Toolium compatible with GGR and Selenoid
559
- - Download execution video and session logs if the test fails using GGR and Selenoid
560
- - Add logs path in the `_output` folder to download GGR logs
561
- - Add `username` and `password` config properties in [Server] section to enable basic authentication in Selenium Grid (required by GGR)
562
-
563
- v1.4.3
564
- ------
565
-
566
- *Release date: 2018-12-18*
567
-
568
- - Fix Appium version to 0.31 or minor
569
-
570
- v1.4.2
571
- ------
572
-
573
- *Release date: 2018-10-26*
574
-
575
- - Add movement in X axis in *scroll_element_into_view* method
576
- - Fix bugs and new features in the Dynamic Environment library:
577
-
578
- | chars no utf-8 are accepted
579
- | no replace behave prefixes into a step
580
- | pretty print by console, in Steps multi lines
581
- | raise an exception in error case
582
- | allow comments in the steps
583
-
584
- - Add support for python 3.7
585
-
586
- v1.4.1
587
- ------
588
-
589
- *Release date: 2018-02-26*
590
-
591
- - Fix README.rst format to be compatible with pypi
592
- - Fix `after_scenario` error when toolium `before_feature` is not used
593
- - Read `Config_environment` before properties initialization to read right properties file
594
- - New config section [FirefoxArguments] to set firefox arguments from properties file, e.g. '-private'
595
- - Add a config property `headless` in [Driver] section to enable headless mode in firefox and chrome
596
- - New config properties 'monitor', 'bounds_x' and 'bounds_y' in [Driver] section to configure browser bounds and monitor
597
- - Normalize filenames to avoid errors with invalid characters
598
-
599
- v1.4.0
600
- ------
601
-
602
- *Release date: 2018-02-04*
603
-
604
- - Add pytest fixtures to start and stop drivers
605
- - New config property `reuse_driver_session` in [Driver] section to use the same driver in all tests
606
- - Rename config property `restart_driver_fail` in [Driver] section to `restart_driver_after_failure`
607
- - Add @no_driver feature or scenario tag to do not start the driver in these tests
608
- - Fix output folder names when driver type is empty
609
- - Fix output log name when `Config_environment` is used
610
- - Fix Chrome options using remote drivers with Selenium >= 3.6.0
611
-
612
- v1.3.0
613
- ------
614
-
615
- *Release date: 2017-09-12*
616
-
617
- - Add Behave dynamic environment (more info in `Docs <http://toolium.readthedocs.io/en/latest/tests_runners_integration.html#behave-dynamic-environment>`_)
618
- - Fix visual screenshot filename error when behave feature name contains :
619
- - Add a config property 'explicitly_wait' in [Driver] section to set the default timeout used in *wait_until* methods
620
- - When reuse_driver is true using behave, driver is initialized in *before_feature* method and closed in *after_feature*
621
- method
622
- - Add @reuse_driver feature tag to reuse driver in a behave feature, even if reuse_driver is false
623
- - Add @reset_driver scenario tag to restart driver before a behave scenario, even if reuse_driver is true
624
- - Add *is_present* and *is_visible* methods to PageElement classes to know if an element is present or visible
625
-
626
- v1.2.5
627
- ------
628
-
629
- *Release date: 2017-03-24*
630
-
631
- - Fix firefox initialization error using Selenium 2.X
632
- - Add *wait_until_loaded* method to PageObject class to wait until all page elements with wait=True are visible
633
-
634
- v1.2.4
635
- ------
636
-
637
- *Release date: 2017-03-17*
638
-
639
- - Fix NoSuchElementException error finding elements in nested groups
640
-
641
- v1.2.3
642
- ------
643
-
644
- *Release date: 2017-03-10*
645
-
646
- - Save *geckodriver.log* file in output folder
647
- - Fix MagickEngine name error when using an old version of needle
648
- - Add *wait_until_clickable* method to Utils and PageElement classes to search for an element and wait until it is
649
- clickable
650
-
651
- v1.2.2
652
- ------
653
-
654
- *Release date: 2017-02-01*
655
-
656
- - Fix error comparing screenshots in mobile tests
657
- - Fix image size when enlarging a vertical image in visual testing reports
658
- - Move js and css out of visual html report to avoid CSP errors
659
-
660
- v1.2.1
661
- ------
662
-
663
- *Release date: 2017-01-18*
664
-
665
- - Fix error installing Toolium when setuptools version is too old
666
-
667
- v1.2.0
668
- ------
669
-
670
- *Release date: 2017-01-17*
671
-
672
- - Refactored reset_object method. Now it has an optional parameter with the driver_wrapper.
673
- - Fix error reading geckodriver logs after test failure
674
- - Fix error downloading videos after failed tests
675
- - Fix error in visual tests when excluding elements in a scrolled page
676
- - New config property 'logs_enabled' in [Server] section to download webdriver logs even if the test passes
677
- - New config property 'save_web_element' in [Driver] section
678
-
679
- | If it's false, the WebElement is searched whenever is needed (default value)
680
- | If it's true, the WebElement is saved in PageElement to avoid searching for the same element multiple times. Useful
681
- in mobile testing when searching for an element can take a long time.
682
-
683
- - New config property 'restart_driver_fail' in [Driver] section to restart the driver when the test fails even though
684
- the value of *reuse_driver* property is *true*
685
- - System property 'Config_environment' is used to select config files, e.g., to read android-properties.cfg file:
686
-
687
- .. code:: console
688
-
689
- $ Config_environment=android nose2 web/tests/test_web.py
690
-
691
- - Behave user property 'env' is deprecated, use 'Config_environment' instead:
692
-
693
- .. code:: console
694
-
695
- $ behave -D Config_environment=android
696
-
697
- v1.1.3
698
- ------
699
-
700
- *Release date: 2016-11-18*
701
-
702
- - Video download works in Selenium Grid 3
703
- - New config property 'binary' in [Firefox] section to configure the firefox binary path
704
- - Allow to configure visual baseline directory in ConfigFiles class (default: output/visualtests/baseline)
705
- - Delete IE and Edge cookies after tests
706
- - Fix wait_until_element_visible and wait_until_element_not_visible methods when the page element has a parent element
707
- - Add *imagemagick* as visual engine to have better diff images
708
-
709
- v1.1.2
710
- ------
711
-
712
- *Release date: 2016-07-19*
713
-
714
- - Baseline name property can contain *{Version}* to add actual version capability value to the baseline name
715
- - New config property 'gecko_driver_path' in [Browser] section to configure the Gecko/Marionette driver location
716
-
717
- v1.1.1
718
- ------
719
-
720
- *Release date: 2016-06-30*
721
-
722
- - Save webdriver logs of each driver, not just the first one, and only if test fails
723
-
724
- v1.1.0
725
- ------
726
-
727
- *Release date: 2016-06-03*
728
-
729
- - New MobilePageObject class to test Android and iOS apps with the same base page objects
730
- - Fix visual report links in Windows
731
- - Add @no_reset_app, @reset_app and @full_reset_app behave tags to configure Appium reset capabilities for one scenario
732
- - Add @android_only and @ios_only behave tags to exclude one scenario from iOS or Android executions
733
- - Add a behave user property named *env* to select config files, e.g., to use android-properties.cfg file:
734
-
735
- .. code:: console
736
-
737
- $ behave -D env=android
738
-
739
- v1.0.1
740
- ------
741
-
742
- *Release date: 2016-05-09*
743
-
744
- - Fix wait_until_first_element_is_found error when element is None
745
- - Fix app_strings initialization in page objects
746
- - Fix swipe method to work with Appium 1.5 swipe
747
-
748
- v1.0.0
749
- ------
750
-
751
- *Release date: 2016-04-12*
752
-
753
- DRIVER
754
-
755
- - Refactor to move config property 'browser' in [Browser] section to 'type' property in [Driver] section
756
- - Allow to run API tests with behave: driver type property must be empty
757
- - Refactor to rename 'driver_path' config properties to 'chrome_driver_path', 'explorer_driver_path',
758
- 'edge_driver_path', 'opera_driver_path' and 'phantomjs_driver_path'
759
- - Refactor to move config properties 'reuse_driver' and 'implicitly_wait' from [Common] section to [Driver] section
760
- - Add a new config property 'appium_app_strings' in [Driver] section to request app strings before each Appium test
761
- - Add new config properties 'window_width' and 'window_height' in [Driver] section to configure browser window size
762
- - Upload the error screenshot to Jira if the test fails
763
- - Allow to add extensions to firefox profile from properties file
764
-
765
- New config section [FirefoxExtensions] with extensions file paths, e.g. 'firebug = firebug-3.0.0-beta.3.xpi'
766
-
767
- - Allow to use a predefined firefox profile
768
-
769
- New config property 'profile' in [Firefox] section to configure the profile directory
770
-
771
- - Allow to set chrome arguments from properties file
772
-
773
- New config section [ChromeArguments] with chrome arguments, e.g. 'lang = es'
774
-
775
- PAGE OBJECTS
776
-
777
- - Save WebElement in PageElement to avoid searching for the same element multiple times
778
- - Refactor to rename get_element to get_web_element in Utils class and element to web_element in PageElement class
779
- - Add *wait_until_first_element_is_found* method to Utils class to search for a list of elements and wait until one of
780
- them is found
781
- - Add new page element types: Checkbox, InputRadio, Link, Group and PageElements
782
-
783
- BEHAVE
784
-
785
- - Allow to modify Toolium properties from behave userdata configuration, e.g.:
786
-
787
- .. code:: console
788
-
789
- $ behave -D Driver_type=chrome
790
-
791
- VISUAL TESTING
792
-
793
- - Refactor to rename assertScreenshot to assert_screenshot and assertFullScreenshot to assert_full_screenshot
794
- - Add force parameter to *assert_screenshot* methods to compare the screenshot even if visual testing is disabled by
795
- configuration. If the assertion fails, the test fails.
796
- - Baseline name property can contain *{PlatformVersion}* or *{RemoteNode}* to add actual platform version or remote
797
- node name to the baseline name
798
-
799
-
800
- v0.12.1
801
- -------
802
-
803
- *Release date: 2016-01-07*
804
-
805
- - Fix app_strings initialization in Behave Appium tests
806
- - In Behave tests, Toolium config is saved in context.toolium_config instead of using context.config to avoid
807
- overriding Behave config
808
-
809
- v0.12.0
810
- -------
811
-
812
- *Release date: 2015-12-23*
813
-
814
- - Allow to create a second driver using DriverWrapper constructor:
815
-
816
- .. code-block:: python
817
-
818
- second_wrapper = DriverWrapper()
819
- second_wrapper.connect()
820
-
821
- - Fix page object issue with non-default driver. Now page object and utils init methods have both a driver_wrapper
822
- optional parameter instead of driver parameter.
823
- - Fix swipe over an element in Android and iOS web tests
824
- - Move set_config_* and set_output_* test case methods to ConfigFiles class
825
- - Add behave environment file to initialize Toolium wrapper from behave tests
826
-
827
- v0.11.3
828
- -------
829
-
830
- *Release date: 2015-11-24*
831
-
832
- - Fix image size in visual testing for Android and iOS web tests
833
- - Baseline name property allows any configuration property value to configure the visual testing baseline folder, e.g.:
834
-
835
- | {AppiumCapabilities_deviceName}-{AppiumCapabilities_platformVersion}: this baseline_name could use baselines as iPhone_6-8.3, iPhone_6-9.1, iPhone_6s-9.1, ...
836
- | {Browser_browser}: this baseline_name could use baselines as firefox, iexplore, ... (default value)
837
-
838
- - Fix page elements initialization when they are defined outside of a page object
839
-
840
- v0.11.2
841
- -------
842
-
843
- *Release date: 2015-11-11*
844
-
845
- - Compatibility with Python 3
846
-
847
- v0.11.1
848
- -------
849
-
850
- *Release date: 2015-11-02*
851
-
852
- - New config property 'operadriver_path' in [Browser] section to configure the Opera Driver location
853
- - Fix initialization error when a page object contains another page object
854
- - Fix visual testing error if browser is phantomjs
855
- - Fix firefox profile error in remote executions
856
- - Configure setup.py to execute tests with 'python setup.py test'
857
- - Convert markdown (.md) files to reStructuredText (.rst) and update long_description with README.rst content
858
-
859
- v0.11.0
860
- -------
861
-
862
- *Release date: 2015-10-21*
863
-
864
- - Rename library from seleniumtid to toolium
865
- - Distributed under Apache Software License, Version 2
866
-
867
- v0.10.0
868
- -------
869
-
870
- *Release date: 2015-09-23*
871
-
872
- - Add support to Edge Windows browser
873
- - New config property 'summary_prefix' in [Jira] section to modify default TCE summary
874
- - Add scroll_element_into_view method to PageElement that scroll to element
875
- - Add parent parameter to PageElement when element must be found from parent
876
- - Page elements can be defined as class attributes, it is no longer necessary to define them as instance attributes in
877
- init_page_elements()
878
- - Add wait_until_visible, wait_until_not_visible and assertScreenshot methods to PageElement
879
- - Allow to set Chrome mobile options from properties file
880
-
881
- New config section [ChromeMobileEmulation] with mobile emulation options, e.g. 'deviceName = Google Nexus 5'
882
-
883
- - Configuration system properties have been renamed
884
-
885
- | Old properties: Files_output_path, Files_log_filename, Files_properties, Files_logging
886
- | New properties: Output_directory, Output_log_filename, Config_directory, Config_prop_filenames, Config_log_filename
887
-
888
- - Add set_config_* and set_output_* test case methods to configure output and config files instead of using
889
- configuration system properties
890
-
891
- v0.9.3
892
- ------
893
-
894
- *Release date: 2015-07-24*
895
-
896
- - Allow to set custom driver capabilities from properties file
897
-
898
- New config section [Capabilities] with driver capabilities
899
-
900
- - Fix set_value and app_strings errors in mobile web tests
901
- - Fix set_value error in iOS tests when using needle
902
-
903
- v0.9.2
904
- ------
905
-
906
- *Release date: 2015-06-02*
907
-
908
- - Allow to find elements by ios_uiautomation in visual assertions
909
- - Fix app_strings error in mobile web tests
910
- - Use set_value instead of send_keys to run tests faster
911
-
912
- v0.9.1
913
- ------
914
-
915
- *Release date: 2015-05-21*
916
-
917
- - Add swipe method in Utils to allow swipe over an element
918
- - Only one property file is mandatory if *Files_properties* has multiple values
919
- - Allow to exclude elements from visual screenshots
920
-
921
- v0.9.0
922
- ------
923
-
924
- *Release date: 2015-05-12*
925
-
926
- - Output path (screenshots, videos, visualtests) can be specified with a system property: *Files_output_path*
927
- - Update app_strings in Appium tests only if the driver has changed
928
- - Move visual properties from [Server] section to [VisualTests] section
929
- - With a visual assertion error, the test can fail or give an error message and continue
930
-
931
- New config property 'fail' in [VisualTests] section to fail the test when there is a visual error
932
-
933
- - Create a html report with the visual tests results
934
-
935
- New config property 'complete_report' in [VisualTests] section to include also correct visual assertions in report
936
-
937
- - Configure multiple baseline name for different browsers, languages and versions
938
-
939
- | New config property 'baseline_name' in [VisualTests] section to configure the name of the baseline folder
940
- | Allow {browser}, {language} and {platformVersion} variables, e.g. baseline_name = {browser}-{language}
941
- | The default baseline_name is {browser}.
942
-
943
- - Add assertFullScreenshot method in SeleniumTestCase
944
-
945
- v0.8.6
946
- ------
947
-
948
- *Release date: 2015-04-17*
949
-
950
- - Add wait_until_element_visible method in utils class
951
- - Logger filename can be specified with a system property: *Files_log_filename*
952
-
953
- v0.8.5
954
- ------
955
-
956
- *Release date: 2015-03-23*
957
-
958
- - Add Button page element
959
- - AppiumTestCase has a new attribute app_strings, a dict with application strings in the active language
960
-
961
- v0.8.4
962
- ------
963
-
964
- *Release date: 2015-03-05*
965
-
966
- - Allow to set firefox and chrome preferences from properties file
967
-
968
- | New config section [FirefoxPreferences] with firefox preferences, e.g. 'browser.download.dir = /tmp'
969
- | New config section [ChromePreferences] with chrome preferences, e.g. 'download.default_directory = /tmp'
970
-
971
- v0.8.3
972
- ------
973
-
974
- *Release date: 2015-02-11*
975
-
976
- - Read properties file before each test to allow executing tests with different configurations (android, iphone, ...)
977
-
978
- v0.8.2
979
- ------
980
-
981
- *Release date: 2015-02-04*
982
-
983
- - Logging and properties config files can be specified with a system property: *Files_logging* and *Files_properties*
984
-
985
- *Files_properties* allows multiple files separated by ;
986
-
987
- v0.8.1
988
- ------
989
-
990
- *Release date: 2015-01-26*
991
-
992
- - Fixed minor bugs
993
- - Add visual testing to lettuce tests
994
-
995
- v0.8
996
- ----
997
-
998
- *Release date: 2015-01-20*
999
-
1000
- - Add visual testing to SeleniumTestCase and AppiumTestCase
1001
-
1002
- | New config property 'visualtests_enabled' in [Server] section to enable visual testing
1003
- | New config property 'visualtests_save' in [Server] section to overwrite baseline images with actual screenshots
1004
- | New config property 'visualtests_engine' in [Server] section to select image engine (pil or perceptualdiff)
1005
-
1006
- v0.7
1007
- ----
1008
-
1009
- *Release date: 2014-12-23*
1010
-
1011
- - Allow to autocomplete self.driver and self.utils in IDEs
1012
- - Remove non-mandatory requirements
1013
-
1014
- v0.6
1015
- ----
1016
-
1017
- *Release date: 2014-12-05*
1018
-
1019
- - Multiple tests of a class can be linked to the same Jira Test Case
1020
- - If test fails, the error message will be added as a comment to the Jira Test Case Execution
1021
- - Update Jira Test Cases also in lettuce tests
1022
-
1023
- v0.5
1024
- ----
1025
-
1026
- *Release date: 2014-12-01*
1027
-
1028
- - Downloads the saved video if the test has been executed in a VideoGrid
1029
- - Add BasicTestCase class to be used in Api tests or in other tests without selenium driver
1030
-
1031
- v0.4
1032
- ----
1033
-
1034
- *Release date: 2014-11-12*
1035
-
1036
- - Add Lettuce terrain file to initialize Selenium driver
1037
- - Add ConfigDriver.create_driver method to create a new driver with specific configuration
1038
- - Add wait_until_element_not_visible method in utils class
1039
-
1040
- v0.3
1041
- ----
1042
-
1043
- *Release date: 2014-06-12*
1044
-
1045
- - Add a config property 'implicitly_wait' in [Common] section to set an implicit timeout
1046
- - Add a config property 'reuse_driver' in [Common] section to use the same driver in all tests of each class
1047
- - The driver can be reused only in a test class setting a class variable 'reuse_driver = True'
1048
-
1049
- v0.2
1050
- ----
1051
-
1052
- *Release date: 2014-05-13*
1053
-
1054
- - Now depends on Appium 1.0
1055
-
1056
- v0.1
1057
- ----
1058
-
1059
- *Release date: 2014-03-04*
1060
-
1061
- - First version of the selenium library in python
1
+ Toolium Changelog
2
+ =================
3
+
4
+ v3.9.0
5
+ ------
6
+
7
+ *Release date: In development*
8
+
9
+ - Add support for Python 3.14
10
+ - Remove Python 3.10 support (Python 3.10 reaches end of life in October 2026)
11
+ - Fix scenario status in Allure report when an action before the feature fails: scenarios are now reported as failed instead of skipped.
12
+
13
+ v3.8.4
14
+ ------
15
+
16
+ *Release date: 2026-10-19*
17
+
18
+ - Add support for reading files with UTF-8 encoding using the `[FILE_UTF8:xxxx]` replacement.
19
+ - Fix package metadata in `pyproject.toml` to use SPDX license syntax, remove the deprecated license classifier and include `toolium.resources` in the package configuration.
20
+
21
+ v3.8.3
22
+ ------
23
+
24
+ *Release date: 2026-07-15*
25
+
26
+ - Fix `openai_request` to rename `azure_api_key` and `openai_api_key` parameters to `api_key` to avoid errors when Azure and OpenAI are created.
27
+ - Add `openai_temperature` and `azure_temperature` parameters to be configurable in `toolium.cfg` file to set the temperature for OpenAI and Azure requests.
28
+ - Generalize documentation for `openai_request` configuration.
29
+
30
+ v3.8.2
31
+ ------
32
+
33
+ *Release date: 2026-07-13*
34
+
35
+ - Update the `openai_request` method to centralize logic and allow loading the configuration from `toolium.cfg` file.
36
+
37
+ v3.8.1
38
+ ------
39
+
40
+ *Release date: 2026-04-15*
41
+
42
+ - Add token usage tracking to OpenAI requests
43
+ - Add pytest and unittest runners documentation in `Docs <http://toolium.readthedocs.io/en/latest/tests_runners_integration.html>`_
44
+ - Fix key error when a scenario with accuracy tag is skipped
45
+
46
+ v3.8.0
47
+ ------
48
+
49
+ *Release date: 2026-03-13*
50
+
51
+ - Add pyproject.toml file for packaging and publishing Toolium
52
+ - Configure ruff for linting and formatting files, replacing flake8 and black
53
+ - Add text analysis tool to get an overall match of a text against a list of expected characteristics
54
+ using AI libraries that come with the `ai` extra dependency
55
+ - Add langgraph methods to create a ReAct AI agent to test the behavior of other AI agents or LLMs
56
+ - Add llm-as-a-judge methods to use an LLM to evaluate the answer of another LLM and give a similarity score based
57
+ on the user's question and a reference answer
58
+
59
+ v3.7.0
60
+ ------
61
+
62
+ *Release date: 2025-12-02*
63
+
64
+ - Fix accuracy tag to exclude skipped executions from total executions count
65
+ - Add `after_accuracy_scenario` hook to allow custom behavior after accuracy scenario execution
66
+ - Add csv report for accuracy scenario results
67
+ - Add text readability assessment function based on the AI libraries that come with the `ai` extra dependency
68
+
69
+ v3.6.0
70
+ ------
71
+
72
+ *Release date: 2025-11-20*
73
+
74
+ - Remove Python 3.9 support (Python 3.9 reached the end of its life on October 31st, 2025)
75
+ - Remove xcuitest deprecated `get_window_size` method and replaced it with `get_window_rect` in all mobile actions
76
+ - Add `SHARP` replacement, to convert [SHARP] to # character in behave steps parameters
77
+ - Add text comparison methods based on AI libraries. To use them, install the `ai` extra dependency:
78
+
79
+ .. code:: console
80
+
81
+ $ pip install toolium[ai]
82
+
83
+ - Add accuracy tags to behave scenarios using `@accuracy_<percent>_<executions>`, e.g. with `@accuracy_80_10` tag, the
84
+ scenario is executed 10 times expecting 80% accuracy
85
+ - Add accuracy data tags to behave scenarios using `@accuracy_data_<suffix>`, e.g. `@accuracy_data_greetings` for
86
+ accuracy data with greetings suffix, that allows to execute accuracy scenarios with different data sets
87
+
88
+ v3.5.0
89
+ ------
90
+
91
+ *Release date: 2025-07-29*
92
+
93
+ - Add support for Python 3.13
94
+ - Remove Python 3.8 support (Python 3.8 reached the end of its life on October 14th, 2024)
95
+ - Add `LANG` replacement, to use different language translations. Example: [LANG:some_text::new_language]
96
+ - Playwright installation is now optional, it can be installed with the `playwright` extra dependency. To install
97
+ Toolium with Playwright support, use:
98
+
99
+ .. code:: console
100
+
101
+ $ pip install toolium[playwright]
102
+
103
+ v3.4.0
104
+ ------
105
+
106
+ *Release date: 2025-03-06*
107
+
108
+ - Now Playwright is available to run web tests instead of Selenium by configuring `web_library: playwright` in [Driver]
109
+ section
110
+ - Allow setting the number of decimal places for seconds when using the `[NOW]` replacement with a specific format
111
+
112
+ v3.3.1
113
+ ------
114
+
115
+ *Release date: 2025-02-05*
116
+
117
+ - Allow to save the diff image in jpg format for visual tests working with jpg
118
+ - Fix the use of the # character in the actions defined in the feature description (Actions Before/After...)
119
+
120
+ v3.3.0
121
+ ------
122
+
123
+ *Release date: 2024-11-26*
124
+
125
+ - Allow negative indexes for list elements in context searches. Example: [CONTEXT:element.-1]
126
+ - Add support for JSON strings to the `DICT` and `LIST`` replacement. Example: [DICT:{"key": true}], [LIST:[null]]
127
+ - Add `REPLACE` replacement, to replace a substring with another. Example: [REPLACE:[CONTEXT:some_url]::https::http]
128
+ - Add `TITLE` replacement, to apply Python's title() function. Example: [TITLE:the title]
129
+ - Add `ROUND` replacement, float number to a string with the indicated number of decimals. Example: [ROUND:3.3333::2]
130
+ - Remove accents from generated file names to avoid errors in some filesystems
131
+ - Update Appium-Python-Client requirement to enable 3 and 4 versions
132
+ - Deprecate set_text method in InputText class to make it compatible with Appium-Python-Client 3 and 4
133
+
134
+ v3.2.0
135
+ ------
136
+
137
+ *Release date: 2024-09-13*
138
+
139
+ - Add `run_storage` dictionary to context to store information during the whole test execution
140
+ - Update current ChainMap context storages (context.storage, context.feature_storage and context.run_storage)
141
+ - Allow to store values from steps into desire storage by using [key], [FEATURE:key] and [RUN:key]
142
+
143
+ v3.1.5
144
+ ------
145
+
146
+ *Release date: 2024-07-15*
147
+
148
+ - Fix `export_poeditor_project` method allowing empty export response
149
+ - Add `key=value` expressions for selecting elements in the context storage
150
+ - Upgrade Faker version to 25.9.*
151
+ - Fix result for action before the feature with error and background to fail scenarios
152
+
153
+ v3.1.4
154
+ ------
155
+
156
+ *Release date: 2024-03-25*
157
+
158
+ - Add `ignore_empty` optional parameter to POEditor configuration to ignore empty translations
159
+ - Ignore not found excluded elements in visual tests
160
+ - Fix duration calling to Appium `swipe` method
161
+ - Fix `[STRING_WITH_LENGTH_NN]` replacement for string with length inside a longer string
162
+
163
+ v3.1.3
164
+ ------
165
+
166
+ *Release date: 2024-02-06*
167
+
168
+ - Fix `PageElements` class initialization when custom page element classes don't have all optional attributes
169
+
170
+ v3.1.2
171
+ ------
172
+
173
+ *Release date: 2024-02-05*
174
+
175
+ - Upgrade Pillow version to 10.1.* to fix compatibility with Python 3.12
176
+
177
+ v3.1.1
178
+ ------
179
+
180
+ *Release date: 2024-02-02*
181
+
182
+ - Add support for Python 3.12
183
+ - Upgrade Sphinx version from 4.* to 7.* to fix readthedocs theme format
184
+ - Upgrade readthedocs-sphinx-search to 0.3.2 to fix security vulnerability
185
+ - Do not log warning messages when toolium system properties are used
186
+ - Allow to initialize a `PageElements` class with webview attributes
187
+
188
+ v3.1.0
189
+ ------
190
+
191
+ *Release date: 2023-09-19*
192
+
193
+ - Update `[CONTEXT:a.b.c]` replacement to allow lists access, e.g. [CONTEXT:list.1] to access the second element of list
194
+ - Add capabilities configured in `[Capabilities]` section also to Appium tests to use `platformName` and `browserName`
195
+ w3c capabilities instead of Appium ones
196
+ - `platformVersion` Appium capability must be a string
197
+ - Add optional parameter to `compare_downloaded_files` method to allow to compare files with different names
198
+ - Remove Python 3.7 support (Python 3.7 reached the end of its life on June 27th, 2023)
199
+ - Update _android_automatic_context_selection method to be compatible with latest chromedriver versions
200
+
201
+ v3.0.2
202
+ ------
203
+
204
+ *Release date: 2023-06-08*
205
+
206
+ - `context.storage` must be initialized before dynamic environment steps in `before_feature` method
207
+ - Mark scenario as failed when a dynamic environment step fails in `before_scenario`
208
+ - Mark all feature scenarios as failed when a dynamic environment step fails in `before_feature` and `after_feature`
209
+ - Configure minimal Appium-Python-Client version to 2.3.0 to avoid import errors
210
+
211
+ v3.0.1
212
+ ------
213
+
214
+ *Release date: 2023-05-09*
215
+
216
+ - Allow to search in `context.storage` using `[CONTEXT:a.b.c]` replacement when `before_feature` method is not used
217
+ - Execute after scenario methods also when a scenario is skipped to assure that scenario preconditions are cleaned
218
+ - Fix `[LANG:key]` replacement bug when it contains carriage returns
219
+ - `context.storage` must be initialized before dynamic environment steps in `before_scenario` method
220
+ - Fix error in Python 3.11 executing nose2 tests
221
+
222
+ v3.0.0
223
+ ------
224
+
225
+ *Release date: 2023-05-03*
226
+
227
+ - Add support for Python 3.11
228
+ - Add support for Selenium 4
229
+ - Add support for Appium-Python-Client 2
230
+ - Visual testing comparison has changed
231
+
232
+ | It only needs PIL library to compare images and generate the differences images
233
+ | Old PerceptualDiff and Magick engines have been removed
234
+ | Config property `engine` in [VisualTests] section has been removed
235
+ | Images distance calculation method has changed, it is recommended to review thresholds in tests
236
+
237
+ - Now `gecko_driver_path`, `chrome_driver_path`, `explorer_driver_path` and `edge_driver_path` config properties
238
+ in [Driver] section are optional, due to new SeleniumManager feature, that downloads drivers automatically
239
+ - New optional config property `safari_driver_path` in [Driver] section to configure Safari driver
240
+ - New optional config property `options` in [Chrome] section to configure Chrome options instead of using old
241
+ property `goog:chromeOptions` in [Capabilities] section.
242
+ - New optional config property `base_path` in [Server] section to allow using old Selenium 3 or Appium 1 remote servers
243
+ - Remove support for lettuce tests
244
+ - Remove deprecated parameter `context` from `map_param` and POEditor methods
245
+ - Remove deprecated config property `restart_driver_fail` in [Driver] section
246
+ - Remove deprecated environment variables `Section_option`, `Config_environment` and `env`
247
+ - Update `[RANDOM_PHONE_NUMBER]` replacement using new `DataGenerator` class
248
+ - Update `[CONTEXT:a.b.c]` replacement to search data in context, context.storage and context.feature_storage
249
+ - Update `[CONTEXT:a.b.c]` replacement to allow dictionaries or classes in context fields
250
+
251
+ v2.7.0
252
+ ------
253
+
254
+ *Release date: 2023-02-24*
255
+
256
+ - Fix drivers not being closed in `after_feature` when errors occur during `before_feature` steps execution
257
+ - Allow to add extensions to chrome options from properties file
258
+
259
+ New config section [ChromeExtensions] with extensions file paths, e.g. 'firebug: resources/firebug-lite.crx'
260
+
261
+ v2.6.3
262
+ ------
263
+
264
+ *Release date: 2022-12-09*
265
+
266
+ - Fix error in Android automatic context selection when context does not contain pages
267
+ - Remove Python 3.6 support (Python 3.6 reached the end of its life on December 23th, 2021)
268
+
269
+ v2.6.2
270
+ ------
271
+
272
+ *Release date: 2022-10-18*
273
+
274
+ - New param [UUID] in *replace_param* method to generate a v4 UUID
275
+ - Improve POEditor error message when there are more than one project
276
+
277
+ v2.6.1
278
+ ------
279
+
280
+ *Release date: 2022-06-28*
281
+
282
+ - Reference dotted keys when saving objects in context storage using [CONTEXT:a.b.c] formula
283
+ - Fix Visual testing image size for MacOS Retina and mobile layout
284
+
285
+ v2.6.0
286
+ ------
287
+
288
+ *Release date: 2022-04-29*
289
+
290
+ - Update map_param method to allow recursive replacements
291
+ - Update replace_param function to allow multiple date expressions in the same param
292
+ - Fix error message to show parent locator instead of object reference when an element is not found
293
+ - Update replace_param function to allow NOW datetime expressions with arbitrary formats accepted by datetime.strftime
294
+
295
+ v2.5.0
296
+ ------
297
+
298
+ *Release date: 2022-03-16*
299
+
300
+ - Update map_param method to use dataset global variables instead of context parameter
301
+ - Dataset variables needed for TOOLIUM, CONTEXT and POE replacements are set automatically
302
+ - Make POEditor methods independent of behave context
303
+ - Fix POEditor bug writing to file when terms contain slashes: from 'http:\/\/www.example.com' to 'http://www.example.com'
304
+
305
+ v2.4.0
306
+ ------
307
+
308
+ *Release date: 2022-03-04*
309
+
310
+ - Add set_file_path and set_base64_path functions to dataset module, to set base paths for FILE and BASE64 mappings
311
+ - Visual testing baseline images are copied to output folder to facilitate report visualization in Jenkins
312
+ - Visual testing output folder is copied to *latest* folder to allow HTML Publisher Jenkins plugin to publish it
313
+ - Fix detection of POEditor configuration not available
314
+ - Fix indent error in Driver Configuration documentation
315
+
316
+ v2.3.0
317
+ ------
318
+
319
+ *Release date: 2022-02-03*
320
+
321
+ - Add missing param in download_videos method to fix error downloading videos from a remote server
322
+ - Add map_param function to dataset module
323
+ - New param [RANDOM_PHONE_NUMBER] in *replace_param* method to generate random phone number
324
+
325
+ v2.2.1
326
+ ------
327
+
328
+ *Release date: 2022-01-11*
329
+
330
+ - Add support for Python 3.10
331
+ - Add support for Appium-Python-Client 1.3.0
332
+ - Remove Python 3.5 support (Python 3.5 reached the end of its life on September 13th, 2020)
333
+ - Move code quality check from codacy to codeclimate
334
+ - Upgrade Sphinx version from 3.* to 4.* to fix doc compilation errors in readthedocs
335
+
336
+ v2.2.0
337
+ ------
338
+
339
+ *Release date: 2021-11-03*
340
+
341
+ - Add JSON object/list conversion to Python dict/list in the type inference logic of the *replace_param* function
342
+ - Add *finalize_properties_configuration* method in *DriverWrapper* class to allow the modification of config properties
343
+ upon initialization programmatically before driver creation
344
+ - Properties values configured by properties files can be overridden with system properties named
345
+ *TOOLIUM_[SECTION]_[OPTION]*, moreover these system properties can be used to add new properties that do not exist in
346
+ properties files
347
+ - Configuration system properties have been renamed. The old property names are deprecated but they can still be used.
348
+
349
+ | Deprecated property name -> New property name
350
+ | Config_environment -> TOOLIUM_CONFIG_ENVIRONMENT
351
+ | Output_directory -> TOOLIUM_OUTPUT_DIRECTORY
352
+ | Output_log_filename -> TOOLIUM_OUTPUT_LOG_FILENAME
353
+ | Config_directory -> TOOLIUM_CONFIG_DIRECTORY
354
+ | Config_log_filename -> TOOLIUM_CONFIG_LOG_FILENAME
355
+ | Config_prop_filenames -> TOOLIUM_CONFIG_PROPERTIES_FILENAMES
356
+ | Visual_baseline_directory -> TOOLIUM_VISUAL_BASELINE_DIRECTORY
357
+
358
+ - Behave user property 'Config_environment' is deprecated, use 'TOOLIUM_CONFIG_ENVIRONMENT' instead:
359
+
360
+ .. code:: console
361
+
362
+ $ behave -D TOOLIUM_CONFIG_ENVIRONMENT=android
363
+
364
+ v2.1.1
365
+ ------
366
+
367
+ *Release date: 2021-09-22*
368
+
369
+ - Avoid to overwrite parent in group elements when a custom parent is defined
370
+ - Fix Chrome options to allow to configure them at the same time in *Chrome* sections and in *goog:chromeOptions*
371
+ capability
372
+
373
+ v2.1.0
374
+ ------
375
+
376
+ *Release date: 2021-07-05*
377
+
378
+ - Add type inference and improve replacement logic in *replace_param* function
379
+ - Remove *generate_fixed_length_param* function, as all possible transformations are available in *replace_param*
380
+ - Fix docutils development dependency to version 0.16
381
+ - Fix InputText element class getting the text value for mobile apps in webview mode
382
+
383
+ v2.0.0
384
+ ------
385
+
386
+ *Release date: 2021-06-15*
387
+
388
+ - Remove Python 2.7, 3.3 and 3.4 support
389
+ - Update deprecated methods to fix warnings in python3 execution
390
+ - Move *get_valid_filename* and *makedirs_safe* methods from *toolium.path_utils* to *toolium.utils.path_utils*
391
+ - Move *Utils* class from *toolium.utils* to *toolium.utils.driver_utils*
392
+ - Fix report when an error happens in the Dynamic Environment
393
+ - New param [TIMESTAMP] in *replace_param* method to generate timestamp value of the actual moment
394
+
395
+ v1.9.2
396
+ ------
397
+
398
+ *Release date: 2021-04-09*
399
+
400
+ - Fix error in *deepcopy* method of *ExtendedConfigParser* class when two config properties have colon in name
401
+
402
+ v1.9.1
403
+ ------
404
+
405
+ *Release date: 2021-03-11*
406
+
407
+ - Added new method wait_until_ajax_request_completed to driver utils class
408
+ - Move CI from Travis to Github Actions
409
+ - Fix string conversion in dataset utilities
410
+ - Add upper/lower conversion to replace param method
411
+
412
+ v1.9.0
413
+ ------
414
+
415
+ *Release date: 2021-03-02*
416
+
417
+ - Added utilities to download files
418
+ - Get text for InputText element in mobile tests
419
+ - Add *translate_config_variables* method to *ExtendedConfigParser* class to translate config variables in a string
420
+ - Add dataset utilities
421
+ - Manage multiples webviews for mobile tests
422
+
423
+ v1.8.2
424
+ ------
425
+
426
+ *Release date: 2020-12-17*
427
+
428
+ - Add support for python 3.9
429
+ - Add *get_driver_name* method to driver utils class
430
+ - Add doc about how to configure Firefox device mode
431
+ - Fix driver log types documentation
432
+
433
+ v1.8.1
434
+ ------
435
+
436
+ *Release date: 2020-11-02*
437
+
438
+ - Create logs folder before downloading driver logs
439
+ - Add *set_focus* method to common elements and input text elements
440
+ - Fix driver log types list in local executions
441
+ - Fix automatic_context_selection for group element
442
+
443
+ v1.8.0
444
+ ------
445
+
446
+ *Release date: 2020-10-05*
447
+
448
+ - Allow lists in config properties instead of converting them to strings
449
+ - Fix typo in documentation for configuration Server log types
450
+ - Include click action in InputText element
451
+ - New config property 'automatic_context_selection' in [Driver] section for mobile tests with webview
452
+
453
+ | If it's false, the WebElement is searched using always NATIVE context
454
+ | If it's true, the WebElement is searched using context NATIVE or WEBVIEW depeding of the webview attribute value
455
+
456
+ v1.7.2
457
+ ------
458
+
459
+ *Release date: 2020-09-01*
460
+
461
+ - Move utils.py and path_utils.py files to utils folder maintaining backwards compatibility
462
+ - Fix input text when element has a shadowroot and text contains quotation marks
463
+ - New config property 'log_types' in [Server] section to configure webdriver log types that should be downloaded
464
+
465
+ v1.7.1
466
+ ------
467
+
468
+ *Release date: 2020-05-18*
469
+
470
+ - Fix Appium dependency conflict, current allowed versions: from 0.24 to 0.52
471
+
472
+ v1.7.0
473
+ ------
474
+
475
+ *Release date: 2020-05-11*
476
+
477
+ - Fix to allow step's text (context.text) declaration into dynamic environment sections
478
+ - Add `ssl` config property in [Server] section to allow using https in Selenium Grid url
479
+ - Visual testing comparison must fail when baseline does not exist and save mode is disabled
480
+ - Update dynamic environment behaviour to work as the behave's one, i.e. after scenario/feature actions are executed
481
+ even when before scenario/feature actions fail
482
+ - Fix unit tests to work without any additional dependencies
483
+
484
+ v1.6.1
485
+ ------
486
+
487
+ *Release date: 2020-01-21*
488
+
489
+ - Fix concurrent folder creation. Add *makedirs_safe* method to create a new folder.
490
+
491
+ v1.6.0
492
+ ------
493
+
494
+ *Release date: 2020-01-15*
495
+
496
+ - New config property 'binary' in [Chrome] section to configure the chrome binary path
497
+ - Allow configuration properties with colon in name
498
+
499
+ For instance, to set a capability with : in name, like:
500
+
501
+ .. code:: console
502
+
503
+ goog:loggingPrefs = "{'performance': 'ALL', 'browser': 'ALL', 'driver': 'ALL'}"
504
+
505
+ Following property should be added in properties.cfg:
506
+
507
+ .. code:: console
508
+
509
+ [Capabilities]
510
+ goog___loggingPrefs: {'performance': 'ALL', 'browser': 'ALL', 'driver': 'ALL'}
511
+
512
+ - Add support for python 3.8
513
+
514
+ v1.5.6
515
+ ------
516
+
517
+ *Release date: 2019-10-04*
518
+
519
+ - Fix dynamic environment exit code when there are hook errors
520
+
521
+ v1.5.5
522
+ ------
523
+
524
+ *Release date: 2019-07-29*
525
+
526
+ - Fix screeninfo dependency to 0.3.1 version
527
+
528
+ v1.5.4
529
+ ------
530
+
531
+ *Release date: 2019-07-22*
532
+
533
+ - Add support to encapsulated elements (Shadowroot)
534
+
535
+ | Only support CSS_SELECTOR locator
536
+ | Input text page element fixed
537
+ | It is not supported for list of elements yet
538
+ | It is not supported for element find by parent yet
539
+ | It is not supported nested encapsulation yet
540
+
541
+ - Fix Selenium dependency conflict
542
+
543
+ v1.5.3
544
+ ------
545
+
546
+ *Release date: 2019-04-05*
547
+
548
+ - Fix error executing Appium locally
549
+
550
+ v1.5.2
551
+ ------
552
+
553
+ *Release date: 2019-04-01*
554
+
555
+ - Check if a GGR session (current) is still active
556
+ - Download Selenoid logs files also when test fails
557
+ - Fix utils.py wait functions' descriptions
558
+ - Add new wait to utils.py in order to wait for an element not containing some text
559
+
560
+ v1.5.1
561
+ ------
562
+
563
+ *Release date: 2019-03-18*
564
+
565
+ - Download Selenoid video and logs files only in linux nodes if video or logs are enabled
566
+ - Add a sleep between Selenoid retries when downloading files
567
+ - Manage exceptions in dynamic environment to mark affected scenarios as failed
568
+
569
+ v1.5.0
570
+ ------
571
+
572
+ *Release date: 2019-02-26*
573
+
574
+ - Latest version of Appium can be used
575
+ - Make Toolium compatible with GGR and Selenoid
576
+ - Download execution video and session logs if the test fails using GGR and Selenoid
577
+ - Add logs path in the `_output` folder to download GGR logs
578
+ - Add `username` and `password` config properties in [Server] section to enable basic authentication in Selenium Grid (required by GGR)
579
+
580
+ v1.4.3
581
+ ------
582
+
583
+ *Release date: 2018-12-18*
584
+
585
+ - Fix Appium version to 0.31 or minor
586
+
587
+ v1.4.2
588
+ ------
589
+
590
+ *Release date: 2018-10-26*
591
+
592
+ - Add movement in X axis in *scroll_element_into_view* method
593
+ - Fix bugs and new features in the Dynamic Environment library:
594
+
595
+ | chars no utf-8 are accepted
596
+ | no replace behave prefixes into a step
597
+ | pretty print by console, in Steps multi lines
598
+ | raise an exception in error case
599
+ | allow comments in the steps
600
+
601
+ - Add support for python 3.7
602
+
603
+ v1.4.1
604
+ ------
605
+
606
+ *Release date: 2018-02-26*
607
+
608
+ - Fix README.rst format to be compatible with pypi
609
+ - Fix `after_scenario` error when toolium `before_feature` is not used
610
+ - Read `Config_environment` before properties initialization to read right properties file
611
+ - New config section [FirefoxArguments] to set firefox arguments from properties file, e.g. '-private'
612
+ - Add a config property `headless` in [Driver] section to enable headless mode in firefox and chrome
613
+ - New config properties 'monitor', 'bounds_x' and 'bounds_y' in [Driver] section to configure browser bounds and monitor
614
+ - Normalize filenames to avoid errors with invalid characters
615
+
616
+ v1.4.0
617
+ ------
618
+
619
+ *Release date: 2018-02-04*
620
+
621
+ - Add pytest fixtures to start and stop drivers
622
+ - New config property `reuse_driver_session` in [Driver] section to use the same driver in all tests
623
+ - Rename config property `restart_driver_fail` in [Driver] section to `restart_driver_after_failure`
624
+ - Add @no_driver feature or scenario tag to do not start the driver in these tests
625
+ - Fix output folder names when driver type is empty
626
+ - Fix output log name when `Config_environment` is used
627
+ - Fix Chrome options using remote drivers with Selenium >= 3.6.0
628
+
629
+ v1.3.0
630
+ ------
631
+
632
+ *Release date: 2017-09-12*
633
+
634
+ - Add Behave dynamic environment (more info in `Docs <http://toolium.readthedocs.io/en/latest/tests_runners_integration.html#behave-dynamic-environment>`_)
635
+ - Fix visual screenshot filename error when behave feature name contains :
636
+ - Add a config property 'explicitly_wait' in [Driver] section to set the default timeout used in *wait_until* methods
637
+ - When reuse_driver is true using behave, driver is initialized in *before_feature* method and closed in *after_feature*
638
+ method
639
+ - Add @reuse_driver feature tag to reuse driver in a behave feature, even if reuse_driver is false
640
+ - Add @reset_driver scenario tag to restart driver before a behave scenario, even if reuse_driver is true
641
+ - Add *is_present* and *is_visible* methods to PageElement classes to know if an element is present or visible
642
+
643
+ v1.2.5
644
+ ------
645
+
646
+ *Release date: 2017-03-24*
647
+
648
+ - Fix firefox initialization error using Selenium 2.X
649
+ - Add *wait_until_loaded* method to PageObject class to wait until all page elements with wait=True are visible
650
+
651
+ v1.2.4
652
+ ------
653
+
654
+ *Release date: 2017-03-17*
655
+
656
+ - Fix NoSuchElementException error finding elements in nested groups
657
+
658
+ v1.2.3
659
+ ------
660
+
661
+ *Release date: 2017-03-10*
662
+
663
+ - Save *geckodriver.log* file in output folder
664
+ - Fix MagickEngine name error when using an old version of needle
665
+ - Add *wait_until_clickable* method to Utils and PageElement classes to search for an element and wait until it is
666
+ clickable
667
+
668
+ v1.2.2
669
+ ------
670
+
671
+ *Release date: 2017-02-01*
672
+
673
+ - Fix error comparing screenshots in mobile tests
674
+ - Fix image size when enlarging a vertical image in visual testing reports
675
+ - Move js and css out of visual html report to avoid CSP errors
676
+
677
+ v1.2.1
678
+ ------
679
+
680
+ *Release date: 2017-01-18*
681
+
682
+ - Fix error installing Toolium when setuptools version is too old
683
+
684
+ v1.2.0
685
+ ------
686
+
687
+ *Release date: 2017-01-17*
688
+
689
+ - Refactored reset_object method. Now it has an optional parameter with the driver_wrapper.
690
+ - Fix error reading geckodriver logs after test failure
691
+ - Fix error downloading videos after failed tests
692
+ - Fix error in visual tests when excluding elements in a scrolled page
693
+ - New config property 'logs_enabled' in [Server] section to download webdriver logs even if the test passes
694
+ - New config property 'save_web_element' in [Driver] section
695
+
696
+ | If it's false, the WebElement is searched whenever is needed (default value)
697
+ | If it's true, the WebElement is saved in PageElement to avoid searching for the same element multiple times. Useful
698
+ in mobile testing when searching for an element can take a long time.
699
+
700
+ - New config property 'restart_driver_fail' in [Driver] section to restart the driver when the test fails even though
701
+ the value of *reuse_driver* property is *true*
702
+ - System property 'Config_environment' is used to select config files, e.g., to read android-properties.cfg file:
703
+
704
+ .. code:: console
705
+
706
+ $ Config_environment=android nose2 web/tests/test_web.py
707
+
708
+ - Behave user property 'env' is deprecated, use 'Config_environment' instead:
709
+
710
+ .. code:: console
711
+
712
+ $ behave -D Config_environment=android
713
+
714
+ v1.1.3
715
+ ------
716
+
717
+ *Release date: 2016-11-18*
718
+
719
+ - Video download works in Selenium Grid 3
720
+ - New config property 'binary' in [Firefox] section to configure the firefox binary path
721
+ - Allow to configure visual baseline directory in ConfigFiles class (default: output/visualtests/baseline)
722
+ - Delete IE and Edge cookies after tests
723
+ - Fix wait_until_element_visible and wait_until_element_not_visible methods when the page element has a parent element
724
+ - Add *imagemagick* as visual engine to have better diff images
725
+
726
+ v1.1.2
727
+ ------
728
+
729
+ *Release date: 2016-07-19*
730
+
731
+ - Baseline name property can contain *{Version}* to add actual version capability value to the baseline name
732
+ - New config property 'gecko_driver_path' in [Browser] section to configure the Gecko/Marionette driver location
733
+
734
+ v1.1.1
735
+ ------
736
+
737
+ *Release date: 2016-06-30*
738
+
739
+ - Save webdriver logs of each driver, not just the first one, and only if test fails
740
+
741
+ v1.1.0
742
+ ------
743
+
744
+ *Release date: 2016-06-03*
745
+
746
+ - New MobilePageObject class to test Android and iOS apps with the same base page objects
747
+ - Fix visual report links in Windows
748
+ - Add @no_reset_app, @reset_app and @full_reset_app behave tags to configure Appium reset capabilities for one scenario
749
+ - Add @android_only and @ios_only behave tags to exclude one scenario from iOS or Android executions
750
+ - Add a behave user property named *env* to select config files, e.g., to use android-properties.cfg file:
751
+
752
+ .. code:: console
753
+
754
+ $ behave -D env=android
755
+
756
+ v1.0.1
757
+ ------
758
+
759
+ *Release date: 2016-05-09*
760
+
761
+ - Fix wait_until_first_element_is_found error when element is None
762
+ - Fix app_strings initialization in page objects
763
+ - Fix swipe method to work with Appium 1.5 swipe
764
+
765
+ v1.0.0
766
+ ------
767
+
768
+ *Release date: 2016-04-12*
769
+
770
+ DRIVER
771
+
772
+ - Refactor to move config property 'browser' in [Browser] section to 'type' property in [Driver] section
773
+ - Allow to run API tests with behave: driver type property must be empty
774
+ - Refactor to rename 'driver_path' config properties to 'chrome_driver_path', 'explorer_driver_path',
775
+ 'edge_driver_path', 'opera_driver_path' and 'phantomjs_driver_path'
776
+ - Refactor to move config properties 'reuse_driver' and 'implicitly_wait' from [Common] section to [Driver] section
777
+ - Add a new config property 'appium_app_strings' in [Driver] section to request app strings before each Appium test
778
+ - Add new config properties 'window_width' and 'window_height' in [Driver] section to configure browser window size
779
+ - Upload the error screenshot to Jira if the test fails
780
+ - Allow to add extensions to firefox profile from properties file
781
+
782
+ New config section [FirefoxExtensions] with extensions file paths, e.g. 'firebug = firebug-3.0.0-beta.3.xpi'
783
+
784
+ - Allow to use a predefined firefox profile
785
+
786
+ New config property 'profile' in [Firefox] section to configure the profile directory
787
+
788
+ - Allow to set chrome arguments from properties file
789
+
790
+ New config section [ChromeArguments] with chrome arguments, e.g. 'lang = es'
791
+
792
+ PAGE OBJECTS
793
+
794
+ - Save WebElement in PageElement to avoid searching for the same element multiple times
795
+ - Refactor to rename get_element to get_web_element in Utils class and element to web_element in PageElement class
796
+ - Add *wait_until_first_element_is_found* method to Utils class to search for a list of elements and wait until one of
797
+ them is found
798
+ - Add new page element types: Checkbox, InputRadio, Link, Group and PageElements
799
+
800
+ BEHAVE
801
+
802
+ - Allow to modify Toolium properties from behave userdata configuration, e.g.:
803
+
804
+ .. code:: console
805
+
806
+ $ behave -D Driver_type=chrome
807
+
808
+ VISUAL TESTING
809
+
810
+ - Refactor to rename assertScreenshot to assert_screenshot and assertFullScreenshot to assert_full_screenshot
811
+ - Add force parameter to *assert_screenshot* methods to compare the screenshot even if visual testing is disabled by
812
+ configuration. If the assertion fails, the test fails.
813
+ - Baseline name property can contain *{PlatformVersion}* or *{RemoteNode}* to add actual platform version or remote
814
+ node name to the baseline name
815
+
816
+
817
+ v0.12.1
818
+ -------
819
+
820
+ *Release date: 2016-01-07*
821
+
822
+ - Fix app_strings initialization in Behave Appium tests
823
+ - In Behave tests, Toolium config is saved in context.toolium_config instead of using context.config to avoid
824
+ overriding Behave config
825
+
826
+ v0.12.0
827
+ -------
828
+
829
+ *Release date: 2015-12-23*
830
+
831
+ - Allow to create a second driver using DriverWrapper constructor:
832
+
833
+ .. code-block:: python
834
+
835
+ second_wrapper = DriverWrapper()
836
+ second_wrapper.connect()
837
+
838
+ - Fix page object issue with non-default driver. Now page object and utils init methods have both a driver_wrapper
839
+ optional parameter instead of driver parameter.
840
+ - Fix swipe over an element in Android and iOS web tests
841
+ - Move set_config_* and set_output_* test case methods to ConfigFiles class
842
+ - Add behave environment file to initialize Toolium wrapper from behave tests
843
+
844
+ v0.11.3
845
+ -------
846
+
847
+ *Release date: 2015-11-24*
848
+
849
+ - Fix image size in visual testing for Android and iOS web tests
850
+ - Baseline name property allows any configuration property value to configure the visual testing baseline folder, e.g.:
851
+
852
+ | {AppiumCapabilities_deviceName}-{AppiumCapabilities_platformVersion}: this baseline_name could use baselines as iPhone_6-8.3, iPhone_6-9.1, iPhone_6s-9.1, ...
853
+ | {Browser_browser}: this baseline_name could use baselines as firefox, iexplore, ... (default value)
854
+
855
+ - Fix page elements initialization when they are defined outside of a page object
856
+
857
+ v0.11.2
858
+ -------
859
+
860
+ *Release date: 2015-11-11*
861
+
862
+ - Compatibility with Python 3
863
+
864
+ v0.11.1
865
+ -------
866
+
867
+ *Release date: 2015-11-02*
868
+
869
+ - New config property 'operadriver_path' in [Browser] section to configure the Opera Driver location
870
+ - Fix initialization error when a page object contains another page object
871
+ - Fix visual testing error if browser is phantomjs
872
+ - Fix firefox profile error in remote executions
873
+ - Configure setup.py to execute tests with 'python setup.py test'
874
+ - Convert markdown (.md) files to reStructuredText (.rst) and update long_description with README.rst content
875
+
876
+ v0.11.0
877
+ -------
878
+
879
+ *Release date: 2015-10-21*
880
+
881
+ - Rename library from seleniumtid to toolium
882
+ - Distributed under Apache Software License, Version 2
883
+
884
+ v0.10.0
885
+ -------
886
+
887
+ *Release date: 2015-09-23*
888
+
889
+ - Add support to Edge Windows browser
890
+ - New config property 'summary_prefix' in [Jira] section to modify default TCE summary
891
+ - Add scroll_element_into_view method to PageElement that scroll to element
892
+ - Add parent parameter to PageElement when element must be found from parent
893
+ - Page elements can be defined as class attributes, it is no longer necessary to define them as instance attributes in
894
+ init_page_elements()
895
+ - Add wait_until_visible, wait_until_not_visible and assertScreenshot methods to PageElement
896
+ - Allow to set Chrome mobile options from properties file
897
+
898
+ New config section [ChromeMobileEmulation] with mobile emulation options, e.g. 'deviceName = Google Nexus 5'
899
+
900
+ - Configuration system properties have been renamed
901
+
902
+ | Old properties: Files_output_path, Files_log_filename, Files_properties, Files_logging
903
+ | New properties: Output_directory, Output_log_filename, Config_directory, Config_prop_filenames, Config_log_filename
904
+
905
+ - Add set_config_* and set_output_* test case methods to configure output and config files instead of using
906
+ configuration system properties
907
+
908
+ v0.9.3
909
+ ------
910
+
911
+ *Release date: 2015-07-24*
912
+
913
+ - Allow to set custom driver capabilities from properties file
914
+
915
+ New config section [Capabilities] with driver capabilities
916
+
917
+ - Fix set_value and app_strings errors in mobile web tests
918
+ - Fix set_value error in iOS tests when using needle
919
+
920
+ v0.9.2
921
+ ------
922
+
923
+ *Release date: 2015-06-02*
924
+
925
+ - Allow to find elements by ios_uiautomation in visual assertions
926
+ - Fix app_strings error in mobile web tests
927
+ - Use set_value instead of send_keys to run tests faster
928
+
929
+ v0.9.1
930
+ ------
931
+
932
+ *Release date: 2015-05-21*
933
+
934
+ - Add swipe method in Utils to allow swipe over an element
935
+ - Only one property file is mandatory if *Files_properties* has multiple values
936
+ - Allow to exclude elements from visual screenshots
937
+
938
+ v0.9.0
939
+ ------
940
+
941
+ *Release date: 2015-05-12*
942
+
943
+ - Output path (screenshots, videos, visualtests) can be specified with a system property: *Files_output_path*
944
+ - Update app_strings in Appium tests only if the driver has changed
945
+ - Move visual properties from [Server] section to [VisualTests] section
946
+ - With a visual assertion error, the test can fail or give an error message and continue
947
+
948
+ New config property 'fail' in [VisualTests] section to fail the test when there is a visual error
949
+
950
+ - Create a html report with the visual tests results
951
+
952
+ New config property 'complete_report' in [VisualTests] section to include also correct visual assertions in report
953
+
954
+ - Configure multiple baseline name for different browsers, languages and versions
955
+
956
+ | New config property 'baseline_name' in [VisualTests] section to configure the name of the baseline folder
957
+ | Allow {browser}, {language} and {platformVersion} variables, e.g. baseline_name = {browser}-{language}
958
+ | The default baseline_name is {browser}.
959
+
960
+ - Add assertFullScreenshot method in SeleniumTestCase
961
+
962
+ v0.8.6
963
+ ------
964
+
965
+ *Release date: 2015-04-17*
966
+
967
+ - Add wait_until_element_visible method in utils class
968
+ - Logger filename can be specified with a system property: *Files_log_filename*
969
+
970
+ v0.8.5
971
+ ------
972
+
973
+ *Release date: 2015-03-23*
974
+
975
+ - Add Button page element
976
+ - AppiumTestCase has a new attribute app_strings, a dict with application strings in the active language
977
+
978
+ v0.8.4
979
+ ------
980
+
981
+ *Release date: 2015-03-05*
982
+
983
+ - Allow to set firefox and chrome preferences from properties file
984
+
985
+ | New config section [FirefoxPreferences] with firefox preferences, e.g. 'browser.download.dir = /tmp'
986
+ | New config section [ChromePreferences] with chrome preferences, e.g. 'download.default_directory = /tmp'
987
+
988
+ v0.8.3
989
+ ------
990
+
991
+ *Release date: 2015-02-11*
992
+
993
+ - Read properties file before each test to allow executing tests with different configurations (android, iphone, ...)
994
+
995
+ v0.8.2
996
+ ------
997
+
998
+ *Release date: 2015-02-04*
999
+
1000
+ - Logging and properties config files can be specified with a system property: *Files_logging* and *Files_properties*
1001
+
1002
+ *Files_properties* allows multiple files separated by ;
1003
+
1004
+ v0.8.1
1005
+ ------
1006
+
1007
+ *Release date: 2015-01-26*
1008
+
1009
+ - Fixed minor bugs
1010
+ - Add visual testing to lettuce tests
1011
+
1012
+ v0.8
1013
+ ----
1014
+
1015
+ *Release date: 2015-01-20*
1016
+
1017
+ - Add visual testing to SeleniumTestCase and AppiumTestCase
1018
+
1019
+ | New config property 'visualtests_enabled' in [Server] section to enable visual testing
1020
+ | New config property 'visualtests_save' in [Server] section to overwrite baseline images with actual screenshots
1021
+ | New config property 'visualtests_engine' in [Server] section to select image engine (pil or perceptualdiff)
1022
+
1023
+ v0.7
1024
+ ----
1025
+
1026
+ *Release date: 2014-12-23*
1027
+
1028
+ - Allow to autocomplete self.driver and self.utils in IDEs
1029
+ - Remove non-mandatory requirements
1030
+
1031
+ v0.6
1032
+ ----
1033
+
1034
+ *Release date: 2014-12-05*
1035
+
1036
+ - Multiple tests of a class can be linked to the same Jira Test Case
1037
+ - If test fails, the error message will be added as a comment to the Jira Test Case Execution
1038
+ - Update Jira Test Cases also in lettuce tests
1039
+
1040
+ v0.5
1041
+ ----
1042
+
1043
+ *Release date: 2014-12-01*
1044
+
1045
+ - Downloads the saved video if the test has been executed in a VideoGrid
1046
+ - Add BasicTestCase class to be used in Api tests or in other tests without selenium driver
1047
+
1048
+ v0.4
1049
+ ----
1050
+
1051
+ *Release date: 2014-11-12*
1052
+
1053
+ - Add Lettuce terrain file to initialize Selenium driver
1054
+ - Add ConfigDriver.create_driver method to create a new driver with specific configuration
1055
+ - Add wait_until_element_not_visible method in utils class
1056
+
1057
+ v0.3
1058
+ ----
1059
+
1060
+ *Release date: 2014-06-12*
1061
+
1062
+ - Add a config property 'implicitly_wait' in [Common] section to set an implicit timeout
1063
+ - Add a config property 'reuse_driver' in [Common] section to use the same driver in all tests of each class
1064
+ - The driver can be reused only in a test class setting a class variable 'reuse_driver = True'
1065
+
1066
+ v0.2
1067
+ ----
1068
+
1069
+ *Release date: 2014-05-13*
1070
+
1071
+ - Now depends on Appium 1.0
1072
+
1073
+ v0.1
1074
+ ----
1075
+
1076
+ *Release date: 2014-03-04*
1077
+
1078
+ - First version of the selenium library in python