All notable changes to this project will be documented in this file.
- Updated
selenium-webdriver
gem to version 4.26.0. - Updated
rexml
gem to latest version to address ReDoS vulnerability.
- Disable Chrome search engine choice screen.
- Updated
selenium-webdriver
gem to version 4.25.0.
- Updated
selenium-webdriver
gem to version 4.24.0.
- Updated
appium_lib
gem to version 15.2.2.
- Updated
selenium-webdriver
gem to version 4.23.0. - Updated
appium_lib
gem to version 15.2.1. - Updated
appium_lib_core
gem to version 9.2.1.
- Added
cuke_modeler
gem as a development dependency so that Cucumber test results logging would not fail when running tests in parallel with Ruby version 3.10 or greater.
- Updated
selenium-webdriver
gem to version 4.22.0.
- Setting
DOWNLOADS
Environment Variable totrue
will create a/downloads
folder which will be used as the destination for files that are downloaded by your automated tests. You know longer need to manually create the/downloads
folder. - Updated
appium_lib
gem to version 15.1.0. - Updated
appium_lib_core
gem to version 9.1.1. - Updated
selenium-webdriver
gem to version 4.21.1.
- Updated
selenium-webdriver
gem to version 4.20.0. - Updated
appium_lib
gem to version 15.0.0. - Updated
appium_lib_core
gem to version 8.0.1.
WebDriverConnect.initialize_web_driver
,AppiumServer.start
, andAppiumServer.running?
methods now support Appium version 2.x. Backward compatibility with Appium version 1.x is provided ifAPPIUM_SERVER_VERSION
Environment Variable is set to1
.
- Updated
selenium-webdriver
gem to version 4.19.0.
- Updated
selenium-webdriver
gem to version 4.18.1. - Updated
rack
gem to version 3.0.9.1. - Updated
nokogiri
gem to version 1.16.2.
- Updated
capybara
gem to version 3.40.0.
- Updated
appium_lib
gem to version 14.0.0. - Updated
selenium-webdriver
gem to version 4.17.0.
WebDriverConnect.driver_exists?
andactivate_driver
methods now convert string passed as a driver name to a symbol with lower case letters and spaces replaced with underscores, which is howWebDriverConnect.initialize_web_driver
saves the driver name.
- Support for test data assets stored in Excel
.xls
has been removed because.xls
files cannot be properly tracked and diffed by source control tools like git. ExcelData
andExcelDataSource
classes removed.- Removed dependence on
spreadsheet
gem.
WebDriverConnect.activate_driver
now correctly setsEnviron.driver_name
to name of activated WebDriver instance.WebDriverConnect.close_all_drivers
no longer raises exception if called before any WebDrivers have been instantiated.
- Added
WebDriverConnect.driver_exists?
method.
WebDriverConnect.num_drivers
no longer raises exception if called before any WebDrivers have been instantiated.
UIElement.find_object
no longer raisesSelenium::WebDriver::Error::StaleElementReferenceError
when testing with multiple WebDriver instances.DataPresenter.initialize
no longer fails ifdata
parameter isnil
.
List.get_list_item
no longer returnsnil
.
- Changed Sauce Labs
DATA_CENTER
Environment Variable toSL_DATA_CENTER
.
- Added support for specifying and connecting to web browsers on unsupported cloud hosting services using
custom
user- defined driver and capabilities.
- Added support for connecting to, and switching between multiple WebDriver or Appium connected desktop and/or mobile web
browsers by utilizing the following new methods:
WebDriverConnect.activate_driver
WebDriverConnect.num_drivers
WebDriverConnect.close_all_drivers
- Added support for web page scrolling by utilizing the following methods:
Browsers.scroll_to_bottom
Browsers.scroll_to_top
Browsers.scroll_to
WebDriverConnect.initialize_web_driver
method now accepts an optionaloptions
hash for specifying desired capabilities (using W3C protocol), driver, driver name, endpoint URL, device type, and desktop browser window size information.- The
HOST_BROWSER
Environment Variable is no longer required to support emulated mobile web browsers. - The
SELENIUM
Environment Variable is no longer used to instantiate a WebDriver connection to a Selenium 4 Grid instance. To establish a connection to browser instances on a Selenium 4 Grid, set theDRIVER
Environment Variable togrid
. - TestCentricity now supports and integrates with Selenium-Webdriver version 4.14 and Capybara version 3.39.
- Updated profiles for emulated mobile device browsers.
- Removed dependency on
appium_capybara
andwebdrivers
gems. - Ruby version 3.0.0 or greater is now required.
- Locally hosted Internet Explorer web browsers are no longer supported.
- Added support for connecting to remote mobile browsers on iOS simulators and Android emulators on the TestingBot service.
-
The
DRIVER
Environment Variable is now used to specify theappium
,browserstack
,saucelabs
,testingbot
, orlambdatest
driver. -
The
WEB_BROWSER
Environment Variable is no longer used to specify theappium
,browserstack
,saucelabs
,testingbot
, orlambdatest
driver. -
TestCentricity now supports and integrates with Selenium-Webdriver version 4.3.
- Fix
gemspec
to no longer include specs and Cucumber tests as part of deployment package for gem.
*WebDriverConnect.initialize_web_driver
method no longer raises No such file or directory @ dir_s_mkdir
error due to
missing Downloads
folder when running tests in parallel.
- Added
UIElement.wait_until_enabled
method
- Added
UIElement.wait_while_busy
method - Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification ofaria_busy
attribute.
- Update default version of Appium used when running tests on Sauce Labs service.
- Refactored capabilities definition when running with locally hosted Appium instance.
- Added the following
Audio
,Media
, andVideo
methods to support verification of media text tracks (subtitles, captions, chapters, descriptions, or metadata):track_count
active_track
active_track_data
all_tracks_data
track_data
active_track_source
track_source
- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification of the followingMedia
properties::track_count
:active_track
:active_track_data
:all_tracks_data
:track_data
:active_track_source
:track_source
TextField.validation_message
andTextField.validity?
methods added.- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification of the followingTextField.validity?
properties::badInput
:customError
:patternMismatch
:rangeOverflow
:rangeUnderflow
:stepMismatch
:tooLong
:tooShort
:typeMismatch
:valid
:valueMissing
PageObject.set_verify_focus
andPageSection.set_verify_focus
methods now correctly return theid
of the UI element that unexpectedly has focus during an exception.- Rolled back
require_all
gem version to 1.5.0 in gemspec development dependencies due toRequireAll::LoadError
when running gem test specs and features.
PageSection.radio
no longer returnswrong number of arguments
error.PageObject.populate_data_fields
andPageSection.populate_data_fields
methods no longer skip setting checkboxes or radio buttons to the unchecked state.
CheckBox.define_custom_elements
andRadio.define_custom_elements
methods now support specifying a childinput
component contained by a top levellabel
element.
Image.loaded?
now correctly returns aBoolean
value instead of aString
.Video.video_height
andVideo.video_width
now correctly returns anInteger
value instead of aString
.UIElement.scroll_to
now works for all supported browsers.
UIElement.crossorigin
is no longer limited toAudio
andVideo
objects.
CheckBox.set_checkbox_state
andRadio.set_selected_state
work on iOS simulators again.
Audio.playback_rate
andVideo.playback_rate
now return value as aFloat
instead of aString
.Audio.default_playback_rate
andVideo.default_playback_rate
now return value as aFloat
instead of aString
.Audio.current_time
andVideo.current_time
now return value as aFloat
rounded to two decimal places.Audio.duration
andVideo.duration
now return value as aFloat
rounded to two decimal places.
Audio.mute
andVideo.mute
methods added.Audio.unmute
andVideo.unmute
methods added.Audio.playback_rate
andVideo.playback_rate
now accept aFloat
value as an input for setting the playback rate of media.Audio.volume
andVideo.volume
now accept aFloat
value between 0 and 1 as an input for setting the volume of media.
PageObject.verify_page_exists
now works withpage_locator
traits expressed in Xpath format, and no longer fails with ainvalid selector: An invalid or illegal selector was specified - Selenium::WebDriver::Error::InvalidSelectorError
error.
UIElement.required?
method added.PageObject.populate_data_fields
andPageSection.populate_data_fields
methods now work with the following:input(type='color')
color picker controls if they are specified as atextfield
type element.input(type='range')
slider controls if they are specified as arange
type element.input(type='file')
file upload controls if they are specified as afilefield
type element.
SelectList.selected?
now correctly returns selected value for customselectlist
controls.
- Updated HTML documentation.
Environ.driver
is now correctly set to:appium
when target test browser is running on iOS or Android simulators or physical devices.
- Fixed
AppiumServer.start
so that it no longer times out after failing to start Appium.
- Updated docs regarding the
SHUTDOWN_OTHER_SIMS
Environment Variable when testing on iOS Simulators.
- Updated HTML documentation.
- W3C WebDriver-compliant sessions using Selenium version 4.x are now supported when using the BrowserStack, LambdaTest, TestingBot, and SauceLabs services.
- W3C WebDriver-compliant sessions are now supported when running against remote browsers hosted on Selenium Grid 4 and Dockerized Selenium Grid 4 environments.
- Support for CrossBrowserTesting and Gridlastic cloud hosted Selenium grids have been removed due to their lack of support for Selenium 4.x and the W3C browser capabilities protocol.
- TestCentricity now supports and integrates with Selenium-Webdriver version 4.1.
- Added support for locally hosted Microsoft Edge desktop web browsers, including in
headless
mode. - Added
CheckBox.define_custom_elements
andRadio.define_custom_elements
methods to support abstracted UI implementations where theinput type="checkbox"
orinput type="radio"
object is hidden or obscured by a proxy object, typically alabel
. - Added support for
shutdownOtherSimulators
andforceSimulatorSoftwareKeyboardPresence
capabilities for iOS simulators when testing with Mobile Safari browser on iOS Simulators.
checkbox
andradio
methods no longer accept an optionalproxy
. Calling thecheckbox
orradio
methods with aproxy
parameter will result in awrong number of arguments (given 3, expected 2) (ArgumentError)
exception. Use thedefine_custom_elements
method to specify the locator for an associatedproxy
and/orlabel
element. Thedefine_custom_elements
method can be called from aninitialize
method for thePageObject
orPageSection
where thecheckbox
orradio
is instantiated.- Ruby version 2.7 or greater required.
- Selenium-Webdriver version 4 or greater required.
- Primary test data path has been changed from
features/test_data/
toconfig/test_data/
.
- No longer throws a
NoMethodError: undefined method 'World' for main:Object
error when using RSpec.
WebDriverConnect.initialize_web_driver
method now accepts anoptions
hash as an optional parameter, which can be used to specify an optional base host URL and/or the desired Selenium-Webdriver capabilities required to establish a connection with a cloud hosted target web browser.- User defined mobile device profiles can be specified in a
device.yml
file for testing locally hosted emulated mobile web browsers running in an instance of the Chrome desktop browser. The user specified device profiles must be located atconfig/data/devices/devices.yml
. Refer to the User defined mobile device profiles section of the {file:README.md README} file.
- Removed support for the following legacy UI elements:
CellElement
CellButton
CellCheckBox
CellRadio
CellImage
ListElement
ListButton
ListCheckBox
- Removed support for Siebel Open UI objects. This includes removal of the following legacy methods:
CheckBox.set_siebel_checkbox_state
SelectList.choose_siebel_option
SelectList.get_siebel_options
SelectList.verify_siebel_options
SelectList.read_only?
UIElement.invoke_siebel_dialog
UIElement.invoke_siebel_popup
UIElement.get_siebel_object_type
WebDriverConnect.initialize_web_driver
method now correctly sets local Chrome browser Download directory when running with headless Chrome.
- Added
String.titlecase
method.
- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to allow:translate_upcase
,:translate_downcase
,:translate_capitalize
, and:translate_titlecase
conversions to fall back to:en
default locale if translated strings are missing from the current locale specified inI18n.locale
.
- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to correctly handle:translate_upcase
,:translate_downcase
,:translate_capitalize
, and:translate_titlecase
conversions for Arrays ofString
.
UIElement.hover_at
method now accepts an optionalvisible
parameter to allow hovering over UI elements that are not visible.
UIElement.hover
method now accepts an optionalvisible
parameter to allow hovering over UI elements that are not visible.
SelectList.choose_option
andSelectList.get_options
methods now wait up to 5 seconds for list drop menu to appear.
- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to correctly handle:row
,:column
,:cell
,:item
, and:attribute
properties.
- Updated
Table.define_table_elements
method to accept value for:row_header
element. - Updated
Table.get_row_count
,Table.get_column_count
, andTable.get_table_cell_locator
methods to support tables with row headers in row #1.
WebDriverConnect.initialize_web_driver
method now sets local Chrome and Firefox browser Download directory to separate folders for each parallel test thread when usingparallel_tests
gem to run tests in concurrent threads.
PageObject.populate_data_fields
andPageSection.populate_data_fields
methods acceptString
orBoolean
values for checkboxes and radio buttons.
- Added
UIElement.scroll_to
method.
- Added
PageObject.send_keys
method.
- Added
UIElement.focused?
method. - Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification of thefocused
property.
- Added
PageSection.verify_focus_order
method.
- Added
PageObject.verify_focus_order
method.
- Fixed
UIElement.wait_until_value_is
,List.wait_until_item_count_is
, andTable.wait_until_row_count_is
' methods.
- Fixed
UIElement.visible?
method that was broken in release 3.2.7.
- Added
Audio.crossorigin
andVideo.crossorigin
methods. - Added
Audio.preload
andVideo.preload
methods. - Added
Video.poster
method. - Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification of thecrossorigin
,preload
, andposter
properties.
Audio.volume
andVideo.volume
methods now return aFloat
.
- Added
UIElement.content_editable?
method. - Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification of thecontent_editable
property.
- Fixed
UIElement.aria_multiselectable?
method.
- Added
Range
typeUIElement
to support interaction with and verification of HTML5 Input Range Slider Objects.
- Additional methods to support WCAG 2.x accessibility testing and verification:
UIElement.aria_valuemax
methodUIElement.aria_valuemin
methodUIElement.aria_valuenow
methodUIElement.aria_valuetext
methodUIElement.aria_orientation
methodUIElement.aria_keyshortcuts
methodUIElement.aria_roledescription
methodUIElement.aria_autocomplete
methodUIElement.aria_modal?
methodUIElement.aria_busy?
methodUIElement.aria_multiline?
methodUIElement.aria_multiselectable?
methodUIElement.aria_controls
method
- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification of the following properties:aria_valuemax
aria_valuemin
aria_valuenow
aria_valuetext
aria_orientation
aria_roledescription
aria_autocomplete
aria_modal
aria_keyshortcuts
aria_multiline
aria_multiselectable
aria_controls
- Added device profiles for iPhone 11, 11 Pro, and 11 Pro Max (iOS 13.1) with Mobile Safari browser.
- Added
Table.wait_until_row_count_is
andTable.wait_until_row_count_changes
methods. - Added
CheckBox.indeterminate?
method. - Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification ofindeterminate
property. - Updated device profiles for iPad Pro 12.9" 3rd Generation (iOS 13.1) with Mobile Safari browser.
CheckBox.visible?
,CheckBox.disabled?
, andCheckBox.get_value
methods now work with React and Ember checkboxes with proxy elements.Radio.visible?
,Radio.disabled?
, andRadio.get_value
methods now work with React and Ember radio buttons with proxy elements.
- Added support for connecting to and running your tests on cloud hosted browsers on the LambdaTest cloud platform.
- Added
UIElement.obscured?
andUIElement.inspect
methods. - Added
Video.wait_until_ready_state_is
andAudio.wait_until_ready_state_is
methods.
Video.ready_state
andAudio.ready_state
methods now return an Integer result.
- Added
SelectList.get_group_count
andSelectList.get_group_headings
methods. - Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification ofgroupcount
andgroup_headings
properties ofSelectList
objects.
- Improved compatibility with React and Chosen select lists.
- Added support for enabling popups when testing on BrowserStack cloud hosted Safari, IE, and Edge browsers.
- Added support for enabling all cookies when testing on BrowserStack cloud hosted Safari browsers.
List.get_list_items
andList.get_list_item
methods now strip leading and trailing whitespace from returned values.
- Added
Link.href
method. - Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification ofhref
property.
- Updated device profiles for iPhone 7 (iOS 12.2) with Mobile Firefox browser and iPad (iOS 12.2) with Mobile Firefox browser.
- Updated device profiles for iPhone 7 (iOS 12.2) with Mobile Edge browser and iPad (iOS 12.2) with Mobile Edge browser.
- Updated device profiles for iPhone 7 (iOS 12.2) with Mobile Chrome browser and iPad (iOS 12.2) with Mobile Chrome browser.
- Added
UIElement.title
andPageObject.title
methods. - Added
Video.video_height
, andVideo.video_width
methods. - Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification oftitle
property.
- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification ofname
property.
- Additional methods to support WCAG 2.x accessibility testing and verification:
UIElement.aria_rowcount
method.UIElement.aria_colcount
method.UIElement.aria_sort
method.UIElement.aria_haspopup?
method.UIElement.aria_pressed?
method.
- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification ofaria_rowcount
,aria_colcount
,aria_sort
,aria_pressed
, andaria_haspopup
properties.
PageObject.audio
,PageObject.audios
,PageObject.video
, andPageObject.videos
methods now correctly instantiate HTML 5 Audio and Video objects at the page level.
- Additional methods to support WCAG 2.x accessibility testing and verification:
UIElement.aria_invalid?
method.UIElement.aria_checked?
method.UIElement.aria_readonly?
method.
- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification ofaria_invalid
,aria_checked
, andaria_readonly
properties.
- Added
Audio.current_time
(setter),Audio.play
, andAudio.pause
methods. - Added
Video.current_time
(setter),Video.play
, andVideo.pause
methods.
- Added device profiles for iPhone XR, XS, and XS Max (iOS 12.1) with Mobile Safari browser.
- Added device profiles for iPad Pro 11" and iPad Pro 12.9" 3rd Generation (iOS 12.1) with Mobile Safari browser.
- Updated device profiles for iPhone 7 (iOS 12) with Mobile Firefox browser and iPad (iOS 12) with Mobile Firefox browser.
- Updated device profiles for iPhone 7 (iOS 12) with Mobile Edge browser and iPad (iOS 12) with Mobile Edge browser.
- Updated device profiles for iPhone 7 (iOS 12) with Mobile Chrome browser and iPad (iOS 12) with Mobile Chrome browser.
- Adding greater support for WCAG 2.x accessibility testing and verification:
UIElement.role
method.UIElement.tabindex
method.UIElement.aria_labelledby
method.UIElement.aria_describedby
method.UIElement.aria_live
method.UIElement.aria_selected?
method.UIElement.aria_hidden?
method.UIElement.aria_expanded?
method.UIElement.aria_required?
method.
- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification of the following properties:role
tabindex
aria-labelledby
aria-describedby
aria-live
aria-selected
aria-hidden
aria-expanded
aria-required
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods now ignore case and whitespace when verifying text captions and values when running tests against Microsoft Edge browsers to accommodate known Edge WebDriver Issue #11322543.- Updated
PageObject.populate_data_fields
andPageSection.populate_data_fields
methods to accept optionalintegrity_check
parameter.
- Added support for testing file downloads with locally hosted instances of Chrome or Firefox desktop browsers.
Audio.current_time
,Audio.duration
,Video.current_time
, andVideo.duration
methods now return aFloat
.
- Removed support for legacy Firefox version 47.0.1.
- Removed deprecated
TestCentricity::WebDriverConnect.set_webdriver_path
method.
UIElement.style
method.- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification ofstyle
property.
- Updated device profiles for iPhone 7 (iOS 12) with Mobile Firefox browser and iPad (iOS 12) with Mobile Firefox browser.
- Updated device profiles for iPhone 7 (iOS 12) with Mobile Edge browser and iPad (iOS 12) with Mobile Edge browser.
- Updated device profiles for iPhone 7 (iOS 12) with Mobile Chrome browser and iPad (iOS 12) with Mobile Chrome browser.
- Removed
iPhone
,iPhone4
, andiPhone5
device profiles.
UIElement.aria_disabled?
andUIElement.aria_label
methods.- Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification ofaria-label
andaria-disabled
properties.
Image.src
andImage.alt
method.- Added
Video
andAudio
typeUIElement
to support verification of HTML5 Video and Audio Objects.
UIElement.hover_at
method.- Added support for specifying IP Geolocation when testing on BrowserStack cloud hosted browsers.
- Added support for testing file uploads in browsers running on remote cloud hosted services as well as in Selenium Grid and Dockerized Selenium Grid environments.
- Improved response times of
List.get_item_count
andList.get_list_items
methods by shorteningwait
time.
PageSection.hover
method.List.hover_item
method.
UIElement.count
method.
Image.broken?
method.UIElement.highlight
andUIElement.unhighlight
methods.
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods now takes screenshots that display a red dashed rectangular highlight around any UI element with property states that do not match expected results.
- Removed deprecated
DataObject.set_current
method.
- Added
List.choose_item
andList.get_selected_item
methods. - Added
SelectList.set
method.
- Added
PageObject.wait_for_ajax
method.
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods now accept optionalfail_message
string parameter to add context to error messages when UI verifications raise an exception.
- Added support for connecting to and running your tests in desktop and emulated mobile web browsers hosted on Selenium Grid and Dockerized Selenium Grid environments.
- Added
Environ.report_header
method that can be used to provide formatted test environment information in HTML test results.
- Deprecated
TestCentricity::WebDriverConnect.set_webdriver_path
method because the correct WebDriver is now automatically set.
- Added support for connecting to and running your tests on cloud hosted browsers on the Gridlastic cloud platform.
- Added support for specifying Selenium WebDriver version, browser-specific WebDriver version (for Firefox, IE, and Safari), and browser console logs when running tests on BrowserStack hosted browsers. Refer to section 8.5.1 (Remote desktop browsers on the BrowserStack service) in the README.
- Updated device profiles for iPhone 7 (iOS 11) with Mobile Firefox browser and iPad (iOS 11) with Mobile Firefox browser.
- Updated device profiles for iPhone 7 (iOS 11) with Mobile Edge browser and iPad (iOS 11) with Mobile Edge browser.
- Updated device profiles for iPhone 7 (iOS 11) with Mobile Chrome browser and iPad (iOS 11) with Mobile Chrome browser.
- Added
Environ.headless
method. Will returntrue
if testing against a headless instance of Chrome or Firefox.
- Refactored
SelectList
methods to work with Capybara version 3.x.
- Pinning to Capybara version 2.18.0 because Capybara 3.x breaks several
SelectList
methods.
PageManager.find_page
method now raises an exception if the requested page object has not been defined and instantiated.
- Updated device profiles for iPhone 7 (iOS 11) with Mobile Firefox browser and iPad (iOS 10) with Mobile Firefox browser.
- Updated device profiles for iPhone 7 (iOS 11) with Mobile Edge browser and iPad (iOS 10) with Mobile Edge browser.
- Updated device profiles for iPhone 7 (iOS 11) with Mobile Chrome browser and iPad (iOS 10) with Mobile Chrome browser.
- The TestCentricity™ Web gem now works with Selenium-WebDriver version 3.11 and geckodriver version 0.20.1 (or later) to support testing of the latest versions of Firefox web browsers.
- Support for testing on locally hosted "headless" Chrome or Firefox browsers has been added.
- Support for headless browser testing using Poltergeist and PhantomJS has been removed.
- Support for Legacy FirefoxDriver (used in Firefox versions < 48) has been added.
TestCentricity::WebDriverConnect.set_webdriver_path
method now sets the path to the appropriate geckodriver file for OS X or Windows when testing on locally hosted Firefox browsers.
- Updated device profiles for iPhone 7 (iOS 11) with Mobile Firefox browser and iPad (iOS 10) with Mobile Firefox browser.
- Added device profiles for iPad (iOS 10) with MS Edge browser.
- Updated
TestCentricity::WebDriverConnect.initialize_web_driver
method to read theAPP_FULL_RESET
,APP_NO_RESET
, andNEW_COMMAND_TIMEOUT
Environment Variables and set the correspondingfullReset
,noReset
, andnewCommandTimeout
Appium capabilities for iOS and Android physical devices and simulators. Also reads theWDA_LOCAL_PORT
Environment Variable and sets thewdaLocalPort
Appium capability for iOS physical devices only.
- Fixed device profile for
android_phone
- Generic Android Phone.
- Updated
SelectList.define_list_elements
method to accept value for:list_trigger
element. - Updated
SelectList.choose_option
to respect:list_item
value and to click on:list_trigger
element, if one is specified. - Updated
PageSection
andPageObject
UI element object declaration methods to no longer useclass_eval
pattern. - Updated device profiles for iPhone 7 (iOS 10) with Chrome browser and iPad (iOS 10) with Chrome browser.
- Fixed
SelectList.choose_option
to also accept:text
,:value
, and:index
option hashes across all types of select list objects.
- Added
List.wait_until_item_count_is
andList.wait_until_item_count_changes
methods.
UIElement.wait_until_value_is
andList.wait_until_item_count_is
methods now accept comparison hash.
- Added
PageSection.double_click
,PageObject.right_click
, andPageObject.send_keys
methods.
- Added
PageObject.wait_until_exists
andPageObject.wait_until_gone
methods.
- Fixed bug in
UIElement.get_object_type
method that could result in aNoMethodError obj not defined
error. - Fixed bug in
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods that failed to enqueue errors when UI elements could not be found.
- Updated device profiles for iPhone 7 (iOS 10) with MS Edge browser.
- Added
AppiumServer.start
,AppiumServer.running?
, andAppiumServer.stop
methods for starting and stopping the Appium Server prior to executing tests on iOS physical devices or simulators, or Android virtual device emulators.
- Added
Environ.is_simulator?
andEnviron.is_web?
methods.
- Added support for running tests in Mobile Safari browser on physical iOS devices.
- Updated device profiles for iPhone 7 (iOS 10) with Mobile Firefox browser and iPad (iOS 10) with Mobile Firefox browser.
- Added support for running tests in mobile Chrome or Android browsers on Android Studio virtual device emulators.
- Added
displayed?
,get_all_items_count
, andget_all_list_items
methods toPageSection
class. - Added
get_all_items_count
, andget_all_list_items
methods toList
class.
- Updated
PageObject.populate_data_fields
andPageSection.populate_data_fields
methods to accept optionalwait_time
parameter. - Updated device profiles for iPhone 7 (iOS 10) with MS Edge browser, iPhone 7 (iOS 10) with Chrome browser, and iPhone 7 (iOS 10) with Firefox browser.
- Updated device profiles for iPad (iOS 10) with Chrome browser and iPad (iOS 10) with Firefox browser.
- Fixed locator resolution for Indexed PageSection Objects.
- Added
width
,height
,x
,y
, anddisplayed?
methods toUIElement
class.
- Added
TextField.clear
method for deleting the contents of text fields. This method should trigger theonchange
event for the associated text field.
TextField.clear
method now works with mostnumber
type fields.
- Updated
PageObject.populate_data_fields
andPageSection.populate_data_fields
methods to be compatible with Redactor editor fields. - Updated device profiles for iPhone 7 (iOS 10) with MS Edge browser, iPhone 7 (iOS 10) with Chrome browser, and iPhone 7 (iOS 10) with Firefox browser.
- Fixed bug in
PageObject.populate_data_fields
andPageSection.populate_data_fields
methods that prevented deletion of data in number type textfields and textarea controls.
- Added device profile for iPhone 7 (iOS 10) with MS Edge browser.
- Corrected device profiles for iPad (iOS 10) with Mobile Chrome browser and iPad (iOS 10) with Mobile Firefox browser.
- When testing using remotely hosted browsers on the BrowserStack service, the BrowserStack Local instance is automatically started if the
TUNNELING
Environment Variable is set totrue
.Environ.tunneling
will be set to true if the BrowserStack Local instance is succesfully started. - Added
TestCentricity::WebDriverConnect.close_tunnel
method to close BrowserStack Local instance when Local testing is enabled. Refer to the Remotely hosted desktop and mobile web browsers section for information on usage.
SelectList.choose_option
method now accepts index values for Chosen list objects.
- CSS selectors or XPath expressions may be used as locators for all types of UI Elements, including tables.
- Added device profiles for iPhone 7 (iOS 10) with Mobile Firefox browser and iPad (iOS 10) with Mobile Firefox browser.
- Fixed bug in
SelectList.choose_option
,SelectList.get_options
,SelectList.get_option_count
, andSelectList.get_selected_option
methods which did not recognize grouped option in Chosen list objects.
- Added
PageSection.verify_list_items
method for Indexed PageSection Objects.
- Updated
PageObject.populate_data_fields
andPageSection.populate_data_fields
methods to use backspace characters to delete contents of a textfield instead of usingclear
, which was preventingonchange
JavaScript events from being triggered in some browsers.
- Fixed bug in
TestCentricity::WebDriverConnect.set_webdriver_path
method that was failing to set the path to the appropriate chromedriver file for OS X and Windows.
- Added
get_min
,get_max
, andget_step
methods toTextField
class. - Updated
PageObject.verify_ui_states
andPageSection.verify_ui_states
methods to support verification ofmin
,max
, andstep
attributes for textfields.
- Fixed Chrome and Firefox support for setting browser language via the
LOCALE
Environment Variable. This capability now works for emulated mobile browsers hosted in a local instance of Chrome or Firefox.
- Added suppression of the Info Bar that displays "Chrome is being controlled by automated test software" on locally hosted instances of the Chrome browser.
- Added support for "tiling" or cascading multiple browser windows when the
BROWSER_TILE
andPARALLEL
Environment Variables are set to true. For each concurrent parallel thread being executed, the position of each browser will be offset by 100 pixels right and 100 pixels down. For parallel test execution, use the parallel_tests gem to decrease overall test execution time.
- Added device profiles for Microsoft Lumia 950, Blackberry Leap, Blackberry Passport, and Kindle Fire HD 10
- Added ability to set browser language support via the
LOCALE
Environment Variable for local instances of Chrome browsers
- Added device profiles for iPhone 8, iPhone 8 Plus, iPhone X devices running iOS 11
- Added device profile for iPad Pro 10.5" with iOS 11
- Updated iPhone 7 and iPhone 7 Plus profiles to iOS 10
- Updated Google Pixel and Google Pixel XL profiles to Android 8
- Added device profiles for iPhone 7 (iOS 10) with Mobile Chrome browser and iPad (iOS 10) with Mobile Chrome browser
- The
TestCentricity::WebDriverConnect.initialize_web_driver
method now sets theEnviron
object to the correct device connection states for local and cloud hosted browsers.
- The
TestCentricity::WebDriverConnect.initialize_web_driver
method no longer callsinitialize_browser_size
when running tests against cloud hosted mobile web browser, which was resulting in Appium throwing exceptions for unsupported method calls. - The
TestCentricity::WebDriverConnect.set_webdriver_path
method now correctly sets the path for Chrome webDrivers when theHOST_BROWSER
Environment Variable is set tochrome
. Tests against locally hosted emulated mobile web browser running on a local instance of Chrome will now work correctly.