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