Skip to main content

Eyes constructor

This class provides the main methods used to execute tests and checkpoints.

Import statement​

require 'eyes_selenium'

Syntax​

eyes.configure do |conf|
# conf.batch = $run_batch
conf.api_key = ENV['APPLITOOLS_API_KEY']
conf.branch_name = branch_name
conf.parent_branch_name = 'master'
conf.save_new_tests = false
conf.hide_caret = true
end
eyes.match_timeout = 0 unless is_visual_grid

Methods​

accessibility_validation method​

Syntax​

eyes.accessibility_validation(
Applitools::AccessibilitySettings.new(
Applitools::AccessibilityLevel::AA, Applitools::AccessibilityVersion::WCAG_2_0
))
Note

This feature is available as both a method and a property.

Parameters​

level

Type: AccessibilityLevel

The required accessibility level. These values represent accessibility levels as defined by WCAG 2.

  • AA – The AA level as defined by WCAG 2.
  • AAA – The AAA level as defined by WCAG 2.

guidelinesVersion

Type: AccessibilitySettings

Defines which version of the accessibility standard is used when verifying accessibility.

  • WCAG_2_0 – Version 2.0 of the WCAG specification
  • WCAG_2_1 – Version 2.1 of the WCAG specification

A value of None will disable accessibility checking.

For more information about the Contrast advisor feature see Contrast advisor.

add_property method​

Syntax​

eyes.add_property(name, value)

Parameters​

name

Type: Text

The name of the property.

value

Type: Text

The value associated with the name.

Remarks​

  • Set multiple properties by calling Eyes.add_property multiple times with the same property name and with different values.
  • You should not assign a given value to a property more than once in a given test run.
  • You can also associate properties with a batch using BatchInfo.add_property.

set_proxy method​

Syntax​

config.set_proxy('http://localhost:8000')

Parameters​

proxy

Type: ProxySettings [Optional]

An object created from the ProxySettings class that contains the user name, password, URI and port.

Return value​

Type: Self

The value returned is the object that called the method. This allows you to use a fluent style to call the setXXXX methods of the Configuration class.

Properties​

agent_id property​

Syntax​

eyes.agent_id='custom-agent-id'

Parameters​

agent_id

Type: Text

The agent id to be configured.

api_key property​

Syntax​

eyes.api_key = 'APPLITOOLS_API_KEY'

Parameters​

api_key

Type: Text

Your API key.

Remarks​

Set this immediately after the Eyes object is created (before calling open). If you have an environment variable called APPLITOOLS_API_KEY that is set to the value of your API key, then you do not need to call this method, and Eyes will take the string from the environment value.

app_name property​

Syntax​

eyes.app_name = 'app_name'

Parameters​

app_name

Type: Text

The application name to be configured for the test.

Remarks​

This property must be set before the call to Eyes.open. In the call to Eyes.open, if you provide the application parameter, then it will override the value set here. If you don't provide the parameter or pass a None, then the value set here will be used.

baseline_branch_name property​

Syntax​

eyes.baseline_branch_name='baseline_branch_name'

Parameters​

baseline_branch_name

Type: Text

The baseline branch name to be configured.

baseline_env_name property​

Syntax​

eyes.baseline_env_name='baseline_env_name'

Parameters​

baseline_env_name

Type: Text

The name of the baseline environment.

batch property​

Syntax​

eyes.batch = Applitools::BatchInfo.new('batch_name')

Parameters​

batch

Type: BatchInfo

An object that defines the batch configuration.

branch_name property​

Syntax​

eyes.branch_name = 'branch_name'

Parameters​

branch_name

Type: Text

The branch name to be used by the configuration.

disabled property​

Syntax​

eyes.disabled = true

Type: bool

If True, all method calls to the SDK are ignored. Otherwise, all methods work as usual.

force_full_page_screenshot property​

Syntax​

eyes.force_full_page_screenshot = true

Parameters​

force_full_page_screenshot

Type: bool

If True, Eyes will do scrolling and stitching if necessary. If False, then the result is browser dependent.

hide_caret property​

Syntax​

eyes.hide_caret = true

Parameters​

hide_caret

Type: bool

If True, then the cursor will be hidden before the image is captured.

hide_scrollbars property​

Syntax​

eyes.hide_scrollbars = true

Parameters​

hide_scrollbars

Type: bool

If True, hide scrollbars.

host_app property​

Syntax​

eyes.host_app = 'app'

Parameters​

host_app

Type: Text

The value to be used for the Host App property.

host_os property​

Syntax​

eyes.host_os = host_os

Parameters​

host_os

Type: Text

The value to be used for the Host OS Property.

ignore_caret property​

Syntax​

eyes.ignore_caret = true

Parameters​

ignore_caret

Type: bool

Remarks​

We recommend using set_hide_caret since this eliminates cursor related artifacts instead of detecting and ignoring them.

ignore_displacements property​

Syntax​

eyes.ignore_displacements = true

Parameters​

ignore_displacements

Type: bool

If True, mismatches due to displaced content will not be displayed in the Test Manager. Otherwise, they will be displayed.

Remarks​

Ignore displacements is only active when using a Match level of STRICT or IGNORECOLORS.

match_level property​

Syntax​

eyes.match_level = match_level

Parameters​

match_level

Type: MatchLevel

Available match level values are:

  • Applitools::MatchLevel::NONE
  • Applitools::MatchLevel::LAYOUT
  • Applitools::MatchLevel::IGNORE_COLORS
  • Applitools::MatchLevel::STRICT
  • Applitools::MatchLevel::EXACT

For a full description of the affect of each match levels and the different ways to apply them to tests, checkpoints and regions, see How to use Eyes match levels.

match_timeout property​

Syntax​

eyes.match_timeout = 0

Parameters​

match_timeout

Type: int

The timeout to set in milliseconds.

Remarks​

You can override the default timeout set by this property for a specific set checkpoint by passing a timeout to one of the check_XXXX methods that support a timeout parameter, e.g. check_window. You can also override the timeout for a specific test using the check fluent timeout method.

parent_branch_name property​

Syntax​

eyes.parent_branch_name = 'master'

Parameters​

parent_branch_name

Type: Text

The parent branch name to be configured.

properties property​

Syntax​

eyes.properties = [{ 'name' => 'custom_prop', 'value' => 'custom value' }] 

Remarks​

  • Set multiple properties by calling Eyes.add_property multiple times with the same property name and with different values.
  • You should not assign a given value to a property more than once in a given test run.
  • You can also associate properties with a batch using BatchInfo.add_property.

save_diffs property​

Syntax​

eyes.save_diffs = false

Parameters​

save_diffs

Type: bool

Set to True to configure Save Diffs functionality.

save_new_tests property​

Syntax​

eyes.save_new_tests = false

Parameters​

save_new_tests

Type: bool

If False, the user will need to save the baseline explicitly in the Test Manager for new tests to be saved to the baseline. If True, Eyes will automatically create a baseline for tests with a status of 'new' (the default behavior).

send_dom property​

Syntax​

eyes.send_dom = false

Parameters​

send_dom

Type: bool

If True, DOM information will be sent.

Remarks​

Sending DOM information is enabled by default, so use this property only if you have to disable it.

server_url property​

Syntax​

eyes.server_url = 'server_url'

Parameters​

server_url

Type: Text

The URL of the Eyes server. Pass a value of None to use the default cloud server.

stitch_mode property​

Defines the mechanism used to offset sub-images when generating a full page image by stitching together multiple sub-images. If the width or height of a page being checked is larger than the viewport, and the entire page is being checked, then the full page image is generated by capturing multiple sub-images on the page at different offsets and stitching these image together. This enumerated value is used to define the type of mechanism to be used to offset the image before capturing each sub-image. In general, use of CSS is recommended, although the default is SCROLL. On pages with complex CSS or scrolling, if one method causes issues, then using the other method may avoid them.

Syntax​

eyes.stitch_mode = Applitools::Selenium::StitchModes::CSS

Parameters​

stitch_mode

Type: StitchMode

The stitch mode to use.

Values

  • Applitools::Selenium::StitchModes::CSS
  • Applitools::Selenium::StitchModes::SCROLL

stitching_overlap property​

Syntax​

eyes.stitching_overlap = 0

Parameters​

stitching_overlap

Type: int

The width of the stitch overlap in pixels.

test_name property​

Syntax​

eyes.test_name = 'test_name'

Parameters​

test_name

Type: Text

The test name to be configured for the test.

viewport_size property​

Syntax​

eyes.viewport_size = Applitools::RectangleSize.new(600, 600)

Parameters​

viewport_size

Type: ViewPort

An object that defines the width and height of the test browser viewport in pixels.

Values

  • Applitools::RectangleSize

visual_grid_options property​

Syntax​

eyes.visual_grid_options = {polyfillAdoptedStyleSheets: true}

Parameters​

options

Type: VisualGridOption

One or more configuration options for the Ultrafast Grid.

Remarks​

The following configuration key/value pairs are currently supported:

'chromeHeadless'

Normally, the Ultrafast Grid renders its images using Headless Chrome. There are cases where the behavior of Headless Chrome is different from that of regular Chrome browser, and if the baseline was created with a regular Chrome browser, the differences will be found. Set this option to a value of False to instruct the Ultrafast Grid to use a regular Chrome browser instead of the Headless Chrome browser, so as to eliminate differences that arise because of the different types of Chrome browser.

'polyfillAdoptedStyleSheets'

Adopted Stylesheets are a way to create and distribute reusable styles when using a Shadow DOM. Adopted Stylesheets are not supported by all browsers, so their use may cause mismatches when doing cross-browser validation. By default, when the Ultrafast Grid detects that a page being checked uses Adopted Stylesheets, it will not render that checkpoint, the check will fail, and the test will be aborted. In the Test Manager, the test results for that run will have an Aborted status, and the step that failed will have a Missing status.

To enable rendering of checkpoints that include Adopted Stylesheets, and to ensure that the test can complete successfully, you need to explicitly set the Ultrafast Grid option polyfillAdoptedStyleSheets to a value of True or False:

  • Setting a value of True instructs the Ultrafast Grid to polyfill Adopted Stylesheets.
  • Setting a value of False instructs the Ultrafast Grid to render the page without polyfilling Adopted Stylesheets.

wait_before_screenshots property​

Syntax​

eyes.wait_before_screenshots = 1

Parameters​

wait_before_screenshots

Type: int

The time to wait in milliseconds. Passing a value of less than or equal to zero will cause the default value to be used.