Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NP] Inline buildPointSeriesData and buildHierarchicalData dependencies #61575

Merged
merged 38 commits into from
Apr 9, 2020

Conversation

maryia-lapata
Copy link
Contributor

@maryia-lapata maryia-lapata commented Mar 27, 2020

Summary

Fixes #60090.

This PR contains:

  • moving buildHierarchicalData to vis_type_vislib;
  • moving buildPointSeriesData to vis_type_vislib;
  • moving unit tests forbuildPointSeriesData to vis_type_vislib and converting them to Jest;
  • moving the relevant parts of buildPointSeriesData to discover;
  • removing ui/agg_response;
  • conversion of buildPointSeriesData and buildHierarchicalData to TS;
  • enabling unit tests response_handlers and conversion of them to Jest.

@maryia-lapata maryia-lapata added v8.0.0 release_note:skip Skip the PR/issue when compiling release notes Feature:NP Migration v7.8 labels Mar 27, 2020
@maryia-lapata maryia-lapata added v7.8.0 and removed v7.8 labels Apr 1, 2020
@maryia-lapata
Copy link
Contributor Author

@elasticmachine merge upstream

*/
export function getAspects(table: Table, dimensions: Dimensions) {
const aspects: Aspects = {} as Aspects;
(Object.keys(dimensions) as Array<keyof Dimensions>).forEach(name => {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we know Discover's dimensions object exactly, I simplified all functions for Discover to get rid of unnecessary code.

}

const { y } = chart.aspects;
chart.yAxisLabel = y.length > 1 ? '' : y[0].title;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't initialize yAxisFormat, since it isn't used in DiscoverHistogram component.

rawId: id,
label: yLabel == null ? id : yLabel,
count: 0,
id: id.split('-').pop() as string,
values: [point],
Copy link
Contributor Author

@maryia-lapata maryia-lapata Apr 3, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the component the values is used only, so I removed all other fields.

};
}

export interface Dimensions {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here I based on this config structure.

series: { accessor: group },
};
x: { accessor: x } as Dimension,
y: [{ accessor: y } as Dimension],
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to this and this y is always be an array.

@@ -71,10 +107,9 @@ export function getPoint(table, x, series, yScale, row, rowIndex, y, z) {
}

if (series) {
const seriesArray = series.length ? series : [series];
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

series will be an array or undefined

const multiY = Array.isArray(aspects.y) && aspects.y.length > 1;
const yScale = chart.yScale;
Copy link
Contributor Author

@maryia-lapata maryia-lapata Apr 3, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since chart object is created in point_series files and there is no initializing of yScale, I removed all code related to yScale


if (firstVal) {
y = _.find(aspects.y, function(y) {
return y.accessor === firstVal.accessor;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here firstVal is an object with type Point, which doesn't have accessor property. It means that y will be undefined and an iteratee function will always return series.length => there's no sense in sortBy. That's why I removed this code.

@@ -28,12 +30,7 @@ export function initYAxis(chart) {

const z = chart.aspects.series;
if (z) {
if (Array.isArray(z)) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

z is always be an array.

export function getPoint(
table: Table,
x: Aspect,
series: Aspect[] | undefined,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is yScale gone?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@flash1293 flash1293 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested around and couldn't find any broken things (besides the thing already reported separately). I left a few comments about typings. I think there is still room for improval beyond my comments, but we don't have to be 100% accurate here IMHO - if the things I commented on are working fine it feels to me like it's in a good shape.

Great work on the tests!

return;
}
export interface Row {
[key: string]: number | string;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cell in a table can also be an object (e.g. for date ranges):
Screenshot 2020-04-07 at 14 45 29

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch! Thanks, I updated the PR.

intervalESValue: number;
intervalESUnit: Unit;
format: string;
bounds?: {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't bounds always set in discover when there is a histogram?
Also, it seems like the actual type of this is a moment instance:

const bounds = agg.params.timeRange ? timefilter.calculateBounds(agg.params.timeRange) : null;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems so. Please take a look at 10eca3f.

};

if (bounds) {
chart.ordered.min = isNaN(bounds.min as number)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the types from the comments above are fixed, then these type casts should go away.

# Conflicts:
#	x-pack/plugins/translations/translations/ja-JP.json
#	x-pack/plugins/translations/translations/zh-CN.json

chart.yAxisLabel = table.columns[y.accessor].name;

chart.values = [];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 nits: I am not sure why you're explicitly passing rowIndex below? Also, what do you think about replacing the below lines with a bit more functional code?

 chart.values = table.rows
 	.filter(row => (row && row[yAccessor] !== 'NaN')
 	.map(row=>({
 		x: row[xAccessor] as number,
        y: row[yAccessor] as number,
 	}))
  });

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch! thanks, I updated the PR.

Comment on lines 110 to 112
if (!chart.values.length) {
chart.values.push({} as any);
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can easily remove this lines, by a modification of histogram.tsx

const domainMin = data[0].x > domainStart ? domainStart : data[0].x;

e.g. by using

const domainMin = data[0]?.x > domainStart ? domainStart : data[0]?.x;

you no longer need to push this empty object, and the histogram is displaying 'No data to display'

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, done.

Copy link
Contributor

@flash1293 flash1293 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested and couldn't find any problems, LGTM I worked a bit on improving types (maryia-lapata#12), but I don't think another round of review is necessary after these are fixed.

});

it('properly formats series values', function() {
const seriesAspect = [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test isn't really testing whether the formatter gets applied correctly. Could you wrap the deserialize in the mock in a jest.fn and verify whether it got called with the expected param?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

const aspects = {};
Object.keys(dimensions).forEach(name => {
const dimension = Array.isArray(dimensions[name]) ? dimensions[name] : [dimensions[name]];
export function getAspects(table: Table, dimensions: Dimensions) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you change the types a little here you need less casting:

  const aspects: Partial<Aspects> = {};
  (Object.keys(dimensions) as Array<keyof Dimensions>).forEach(name => {
    const dimension = dimensions[name];
    const dimensionList = Array.isArray(dimension) ? dimension : [dimension];
    dimensionList.forEach(d => {
      if (!d) {
        return;
      }
      const column = table.columns[d.accessor];
      if (!column) {
        return;
      }
      if (!aspects[name]) {
        aspects[name] = [];
      }
      aspects[name]!.push({
        accessor: column.id,
        column: d.accessor,
        title: column.name,
        format: d.format,
        params: d.params,
      });
    });
  });

  if (!aspects.x) {
    aspects.x = [makeFakeXAspect()];
  }

  return aspects as Aspects;

@@ -62,7 +98,7 @@ export function getPoint(table, x, series, yScale, row, rowIndex, y, z) {
title: table.$parent.name,
},
parent: series ? series[0] : null,
};
} as Point;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This cast hides some problems - looks like RowValue could also be string or object. When you change linge 64 to const point: Point = {, you see the places that don't match.

@kibanamachine
Copy link
Contributor

💛 Build succeeded, but was flaky


Test Failures

Kibana Pipeline / kibana-xpack-agent / Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/canvas/custom_elements·ts.Canvas app custom elements deletes custom element when prompted

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has failed 6 times on tracked branches: https://github.com/elastic/kibana/issues/63004

[00:00:00]       │
[00:01:31]         └-: Canvas app
[00:01:31]           └-> "before all" hook
[00:02:31]           └-: custom elements
[00:02:31]             └-> "before all" hook
[00:02:31]             └-> "before all" hook
[00:02:31]               │ info [logstash_functional] Loading "mappings.json"
[00:02:31]               │ info [logstash_functional] Loading "data.json.gz"
[00:02:31]               │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.22"
[00:02:31]               │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.20"
[00:02:31]               │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.21"
[00:02:32]               │ info [canvas/default] Loading "mappings.json"
[00:02:32]               │ info [canvas/default] Loading "data.json.gz"
[00:02:32]               │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-debian-tests-xl-1586440997278281160] [.kibana_1/Qi8BH988T_ahOHy3GtTPZA] deleting index
[00:02:32]               │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-debian-tests-xl-1586440997278281160] [.kibana_2/m44Zwy3vSb6tTsu9DD_b9w] deleting index
[00:02:32]               │ info [canvas/default] Deleted existing index [".kibana_2",".kibana_1"]
[00:02:32]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-debian-tests-xl-1586440997278281160] applying create index request using v1 templates []
[00:02:32]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-debian-tests-xl-1586440997278281160] [.kibana_1] creating index, cause [api], templates [], shards [1]/[1], mappings [_doc]
[00:02:32]               │ info [canvas/default] Created index ".kibana_1"
[00:02:32]               │ debg [canvas/default] ".kibana_1" settings {"index":{"number_of_replicas":"1","number_of_shards":"1"}}
[00:02:32]               │ info [canvas/default] Indexed 3 docs into ".kibana_1"
[00:02:33]               │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xl-1586440997278281160] [.kibana_1/2h3LAAZfSTCp_FgoPtPg1g] update_mapping [_doc]
[00:02:33]               │ debg Migrating saved objects
[00:02:33]               │ proc [kibana]   log   [14:40:56.005] [info][savedobjects-service] Creating index .kibana_2.
[00:02:33]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-debian-tests-xl-1586440997278281160] applying create index request using v1 templates []
[00:02:33]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-debian-tests-xl-1586440997278281160] [.kibana_2] creating index, cause [api], templates [], shards [1]/[1], mappings [_doc]
[00:02:33]               │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-debian-tests-xl-1586440997278281160] updating number_of_replicas to [0] for indices [.kibana_2]
[00:02:34]               │ proc [kibana]   log   [14:40:56.098] [info][savedobjects-service] Migrating .kibana_1 saved objects to .kibana_2
[00:02:34]               │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xl-1586440997278281160] [.kibana_2/p8XSFlUWTLiwF4UauIaSNA] update_mapping [_doc]
[00:02:34]               │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xl-1586440997278281160] [.kibana_2/p8XSFlUWTLiwF4UauIaSNA] update_mapping [_doc]
[00:02:34]               │ proc [kibana]   log   [14:40:56.237] [info][savedobjects-service] Pointing alias .kibana to .kibana_2.
[00:02:34]               │ proc [kibana]   log   [14:40:56.316] [info][savedobjects-service] Finished in 313ms.
[00:02:34]               │ debg navigating to canvas url: http://localhost:6121/app/canvas#/
[00:02:34]               │ debg navigate to: http://localhost:6121/app/canvas#/
[00:02:34]               │ debg browser[INFO] http://localhost:6121/app/canvas?_t=1586443256322#/ 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:02:34]               │
[00:02:34]               │ debg browser[INFO] http://localhost:6121/bundles/app/canvas/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:34]               │ debg ... sleep(700) start
[00:02:35]               │ debg ... sleep(700) end
[00:02:35]               │ debg returned from get, calling refresh
[00:02:35]               │ debg browser[INFO] http://localhost:6121/app/canvas?_t=1586443256322#/ 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:02:35]               │
[00:02:35]               │ debg browser[INFO] http://localhost:6121/bundles/app/canvas/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:35]               │ debg currentUrl = http://localhost:6121/app/canvas#/
[00:02:35]               │          appUrl = http://localhost:6121/app/canvas#/
[00:02:35]               │ debg TestSubjects.find(kibanaChrome)
[00:02:35]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:02:39]               │ debg browser[INFO] http://localhost:6121/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 380:106115 "INFO: 2020-04-09T14:41:00Z
[00:02:39]               │        Adding connection to http://localhost:6121/elasticsearch
[00:02:39]               │
[00:02:39]               │      "
[00:02:39]               │ debg ... sleep(501) start
[00:02:40]               │ debg ... sleep(501) end
[00:02:40]               │ debg in navigateTo url = http://localhost:6121/app/canvas#/
[00:02:40]               │ debg TestSubjects.exists(statusPageContainer)
[00:02:40]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:02:42]               │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:02:43]               │ debg navigating to canvas url: http://localhost:6121/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:43]               │ debg navigate to: http://localhost:6121/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:43]               │ debg browser[INFO] http://localhost:6121/app/canvas?_t=1586443265374#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:02:43]               │
[00:02:43]               │ debg browser[INFO] http://localhost:6121/bundles/app/canvas/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:43]               │ debg ... sleep(700) start
[00:02:44]               │ debg ... sleep(700) end
[00:02:44]               │ debg returned from get, calling refresh
[00:02:45]               │ debg browser[INFO] http://localhost:6121/app/canvas?_t=1586443265374#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:02:45]               │
[00:02:45]               │ debg browser[INFO] http://localhost:6121/bundles/app/canvas/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:45]               │ debg currentUrl = http://localhost:6121/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:45]               │          appUrl = http://localhost:6121/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:45]               │ debg TestSubjects.find(kibanaChrome)
[00:02:45]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:02:49]               │ debg browser[INFO] http://localhost:6121/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 380:106115 "INFO: 2020-04-09T14:41:10Z
[00:02:49]               │        Adding connection to http://localhost:6121/elasticsearch
[00:02:49]               │
[00:02:49]               │      "
[00:02:49]               │ debg ... sleep(501) start
[00:02:50]               │ debg ... sleep(501) end
[00:02:50]               │ debg in navigateTo url = http://localhost:6121/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:50]               │ debg TestSubjects.exists(statusPageContainer)
[00:02:50]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:02:52]               │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:02:53]             └-> creates a custom element from an element when prompted
[00:02:53]               └-> "before each" hook: global before each
[00:02:53]               │ debg TestSubjects.click(canvasWorkpadPage > canvasWorkpadPageElementContent)
[00:02:53]               │ debg Find.clickByCssSelector('[data-test-subj="canvasWorkpadPage"] [data-test-subj="canvasWorkpadPageElementContent"]') with timeout=20000
[00:02:53]               │ debg Find.findByCssSelector('[data-test-subj="canvasWorkpadPage"] [data-test-subj="canvasWorkpadPageElementContent"]') with timeout=20000
[00:02:53]               │ debg Find.clickByCssSelector('[aria-label="Save as new element"]') with timeout=20000
[00:02:53]               │ debg Find.findByCssSelector('[aria-label="Save as new element"]') with timeout=20000
[00:02:54]               │ debg TestSubjects.setValue(canvasCustomElementForm-name, My New Element)
[00:02:54]               │ debg TestSubjects.click(canvasCustomElementForm-name)
[00:02:54]               │ debg Find.clickByCssSelector('[data-test-subj="canvasCustomElementForm-name"]') with timeout=10000
[00:02:54]               │ debg Find.findByCssSelector('[data-test-subj="canvasCustomElementForm-name"]') with timeout=10000
[00:02:54]               │ debg TestSubjects.setValue(canvasCustomElementForm-description, An excellent new element)
[00:02:54]               │ debg TestSubjects.click(canvasCustomElementForm-description)
[00:02:54]               │ debg Find.clickByCssSelector('[data-test-subj="canvasCustomElementForm-description"]') with timeout=10000
[00:02:54]               │ debg Find.findByCssSelector('[data-test-subj="canvasCustomElementForm-description"]') with timeout=10000
[00:02:54]               │ debg TestSubjects.click(canvasCustomElementForm-submit)
[00:02:54]               │ debg Find.clickByCssSelector('[data-test-subj="canvasCustomElementForm-submit"]') with timeout=10000
[00:02:54]               │ debg Find.findByCssSelector('[data-test-subj="canvasCustomElementForm-submit"]') with timeout=10000
[00:02:55]               │ debg TestSubjects.exists(canvasCustomElementCreate-success)
[00:02:55]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="canvasCustomElementCreate-success"]') with timeout=30000
[00:02:56]               └- ✓ pass  (2.7s) "Canvas app custom elements creates a custom element from an element when prompted"
[00:02:56]             └-> adds the custom element to the workpad when prompted
[00:02:56]               └-> "before each" hook: global before each
[00:02:56]               │ debg TestSubjects.click(add-element-button)
[00:02:56]               │ debg Find.clickByCssSelector('[data-test-subj="add-element-button"]') with timeout=10000
[00:02:56]               │ debg Find.findByCssSelector('[data-test-subj="add-element-button"]') with timeout=10000
[00:02:56]               │ debg Find.clickByCssSelector('#customElements') with timeout=20000
[00:02:56]               │ debg Find.findByCssSelector('#customElements') with timeout=20000
[00:02:56]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"] .canvasElementCard__wrapper') with timeout=10000
[00:02:56]               │ debg TestSubjects.findAll(canvasWorkpadPage > canvasWorkpadPageElementContent)
[00:02:56]               │ debg Find.allByCssSelector('[data-test-subj="canvasWorkpadPage"] [data-test-subj="canvasWorkpadPageElementContent"]') with timeout=10000
[00:02:57]               │ debg --- retry.try error: expected [ { _webElement: { driver_: [Object], id_: {} },
[00:02:57]               │          locator: null,
[00:02:57]               │          webDriver: 
[00:02:57]               │           { driver: [Object],
[00:02:57]               │             By: 
[00:02:57]               │              [Function: name(name) {
[00:02:57]               │                  return By.css('*[name="' + escapeCss(name) + '"]');
[00:02:57]               │                }],
[00:02:57]               │             until: [Object],
[00:02:57]               │             browserType: 'chrome',
[00:02:57]               │             'consoleLog$': [Object] },
[00:02:57]               │          timeout: 10000,
[00:02:57]               │          fixedHeaderHeight: 50,
[00:02:57]               │          logger: 
[00:02:57]               │           { identWidth: 14,
[00:02:57]               │             writers: [Object],
[00:02:57]               │             'written$': [Object] },
[00:02:57]               │          browserType: 'chrome',
[00:02:57]               │          By: 
[00:02:57]               │           [Function: name(name) {
[00:02:57]               │               return By.css('*[name="' + escapeCss(name) + '"]');
[00:02:57]               │             }],
[00:02:57]               │          driver: 
[00:02:57]               │           { session_: {},
[00:02:57]               │             executor_: [Object],
[00:02:57]               │             fileDetector_: null,
[00:02:57]               │             onQuit_: [Function: onQuit] },
[00:02:57]               │          Keys: 
[00:02:57]               │           { NULL: '',
[00:02:57]               │             CANCEL: '',
[00:02:57]               │             HELP: '',
[00:02:57]               │             BACK_SPACE: '',
[00:02:57]               │             TAB: '',
[00:02:57]               │             CLEAR: '',
[00:02:57]               │             RETURN: '',
[00:02:57]               │             ENTER: '',
[00:02:57]               │             SHIFT: '',
[00:02:57]               │             CONTROL: '',
[00:02:57]               │             ALT: '',
[00:02:57]               │             PAUSE: '',
[00:02:57]               │             ESCAPE: '',
[00:02:57]               │             SPACE: '',
[00:02:57]               │             PAGE_UP: '',
[00:02:57]               │             PAGE_DOWN: '',
[00:02:57]               │             END: '',
[00:02:57]               │             HOME: '',
[00:02:57]               │             ARROW_LEFT: '',
[00:02:57]               │             LEFT: '',
[00:02:57]               │             ARROW_UP: '',
[00:02:57]               │             UP: '',
[00:02:57]               │             ARROW_RIGHT: '',
[00:02:57]               │             RIGHT: '',
[00:02:57]               │             ARROW_DOWN: '',
[00:02:57]               │             DOWN: '',
[00:02:57]               │             INSERT: '',
[00:02:57]               │             DELETE: '',
[00:02:57]               │             SEMICOLON: '',
[00:02:57]               │             EQUALS: '',
[00:02:57]               │             NUMPAD0: '',
[00:02:57]               │             NUMPAD1: '',
[00:02:57]               │             NUMPAD2: '',
[00:02:57]               │             NUMPAD3: '',
[00:02:57]               │             NUMPAD4: '',
[00:02:57]               │             NUMPAD5: '',
[00:02:57]               │             NUMPAD6: '',
[00:02:57]               │             NUMPAD7: '',
[00:02:57]               │             NUMPAD8: '',
[00:02:57]               │             NUMPAD9: '',
[00:02:57]               │             MULTIPLY: '',
[00:02:57]               │             ADD: '',
[00:02:57]               │             SEPARATOR: '',
[00:02:57]               │             SUBTRACT: '',
[00:02:57]               │             DECIMAL: '',
[00:02:57]               │             DIVIDE: '',
[00:02:57]               │             F1: '',
[00:02:57]               │             F2: '',
[00:02:57]               │             F3: '',
[00:02:57]               │             F4: '',
[00:02:57]               │             F5: '',
[00:02:57]               │             F6: '',
[00:02:57]               │             F7: '',
[00:02:57]               │             F8: '',
[00:02:57]               │             F9: '',
[00:02:57]               │             F10: '',
[00:02:57]               │             F11: '',
[00:02:57]               │             F12: '',
[00:02:57]               │             COMMAND: '',
[00:02:57]               │             META: '',
[00:02:57]               │             ZENKAKU_HANKAKU: '',
[00:02:57]               │             chord: [Function] },
[00:02:57]               │          isW3CEnabled: true,
[00:02:57]               │          isChromium: true },
[00:02:57]               │        { _webElement: { driver_: [Object], id_: {} },
[00:02:57]               │          locator: null,
[00:02:57]               │          webDriver: 
[00:02:57]               │           { driver: [Object],
[00:02:57]               │             By: 
[00:02:57]               │              [Function: name(name) {
[00:02:57]               │                  return By.css('*[name="' + escapeCss(name) + '"]');
[00:02:57]               │                }],
[00:02:57]               │             until: [Object],
[00:02:57]               │             browserType: 'chrome',
[00:02:57]               │             'consoleLog$': [Object] },
[00:02:57]               │          timeout: 10000,
[00:02:57]               │          fixedHeaderHeight: 50,
[00:02:57]               │          logger: 
[00:02:57]               │           { identWidth: 14,
[00:02:57]               │             writers: [Object],
[00:02:57]               │             'written$': [Object] },
[00:02:57]               │          browserType: 'chrome',
[00:02:57]               │          By: 
[00:02:57]               │           [Function: name(name) {
[00:02:57]               │               return By.css('*[name="' + escapeCss(name) + '"]');
[00:02:57]               │             }],
[00:02:57]               │          driver: 
[00:02:57]               │           { session_: {},
[00:02:57]               │             executor_: [Object],
[00:02:57]               │             fileDetector_: null,
[00:02:57]               │             onQuit_: [Function: onQuit] },
[00:02:57]               │          Keys: 
[00:02:57]               │           { NULL: '',
[00:02:57]               │             CANCEL: '',
[00:02:57]               │             HELP: '',
[00:02:57]               │             BACK_SPACE: '',
[00:02:57]               │             TAB: '',
[00:02:57]               │             CLEAR: '',
[00:02:57]               │             RETURN: '',
[00:02:57]               │             ENTER: '',
[00:02:57]               │             SHIFT: '',
[00:02:57]               │             CONTROL: '',
[00:02:57]               │             ALT: '',
[00:02:57]               │             PAUSE: '',
[00:02:57]               │             ESCAPE: '',
[00:02:57]               │             SPACE: '',
[00:02:57]               │             PAGE_UP: '',
[00:02:57]               │             PAGE_DOWN: '',
[00:02:57]               │             END: '',
[00:02:57]               │             HOME: '',
[00:02:57]               │             ARROW_LEFT: '',
[00:02:57]               │             LEFT: '',
[00:02:57]               │             ARROW_UP: '',
[00:02:57]               │             UP: '',
[00:02:57]               │             ARROW_RIGHT: '',
[00:02:57]               │             RIGHT: '',
[00:02:57]               │             ARROW_DOWN: '',
[00:02:57]               │             DOWN: '',
[00:02:57]               │             INSERT: '',
[00:02:57]               │             DELETE: '',
[00:02:57]               │             SEMICOLON: '',
[00:02:57]               │             EQUALS: '',
[00:02:57]               │             NUMPAD0: '',
[00:02:57]               │             NUMPAD1: '',
[00:02:57]               │             NUMPAD2: '',
[00:02:57]               │             NUMPAD3: '',
[00:02:57]               │             NUMPAD4: '',
[00:02:57]               │             NUMPAD5: '',
[00:02:57]               │             NUMPAD6: '',
[00:02:57]               │             NUMPAD7: '',
[00:02:57]               │             NUMPAD8: '',
[00:02:57]               │             NUMPAD9: '',
[00:02:57]               │             MULTIPLY: '',
[00:02:57]               │             ADD: '',
[00:02:57]               │             SEPARATOR: '',
[00:02:57]               │             SUBTRACT: '',
[00:02:57]               │             DECIMAL: '',
[00:02:57]               │             DIVIDE: '',
[00:02:57]               │             F1: '',
[00:02:57]               │             F2: '',
[00:02:57]               │             F3: '',
[00:02:57]               │             F4: '',
[00:02:57]               │             F5: '',
[00:02:57]               │             F6: '',
[00:02:57]               │             F7: '',
[00:02:57]               │             F8: '',
[00:02:57]               │             F9: '',
[00:02:57]               │             F10: '',
[00:02:57]               │             F11: '',
[00:02:57]               │             F12: '',
[00:02:57]               │             COMMAND: '',
[00:02:57]               │             META: '',
[00:02:57]               │             ZENKAKU_HANKAKU: '',
[00:02:57]               │             chord: [Function] },
[00:02:57]               │          isW3CEnabled: true,
[00:02:57]               │          isChromium: true },
[00:02:57]               │        { _webElement: { driver_: [Object], id_: {} },
[00:02:57]               │          locator: null,
[00:02:57]               │          webDriver: 
[00:02:57]               │           { driver: [Object],
[00:02:57]               │             By: 
[00:02:57]               │              [Function: name(name) {
[00:02:57]               │                  return By.css('*[name="' + escapeCss(name) + '"]');
[00:02:57]               │                }],
[00:02:57]               │             until: [Object],
[00:02:57]               │             browserType: 'chrome',
[00:02:57]               │             'consoleLog$': [Object] },
[00:02:57]               │          timeout: 10000,
[00:02:57]               │          fixedHeaderHeight: 50,
[00:02:57]               │          logger: 
[00:02:57]               │           { identWidth: 14,
[00:02:57]               │             writers: [Object],
[00:02:57]               │             'written$': [Object] },
[00:02:57]               │          browserType: 'chrome',
[00:02:57]               │          By: 
[00:02:57]               │           [Function: name(name) {
[00:02:57]               │               return By.css('*[name="' + escapeCss(name) + '"]');
[00:02:57]               │             }],
[00:02:57]               │          driver: 
[00:02:57]               │           { session_: {},
[00:02:57]               │             executor_: [Object],
[00:02:57]               │             fileDetector_: null,
[00:02:57]               │             onQuit_: [Function: onQuit] },
[00:02:57]               │          Keys: 
[00:02:57]               │           { NULL: '',
[00:02:57]               │             CANCEL: '',
[00:02:57]               │             HELP: '',
[00:02:57]               │             BACK_SPACE: '',
[00:02:57]               │             TAB: '',
[00:02:57]               │             CLEAR: '',
[00:02:57]               │             RETURN: '',
[00:02:57]               │             ENTER: '',
[00:02:57]               │             SHIFT: '',
[00:02:57]               │             CONTROL: '',
[00:02:57]               │             ALT: '',
[00:02:57]               │             PAUSE: '',
[00:02:57]               │             ESCAPE: '',
[00:02:57]               │             SPACE: '',
[00:02:57]               │             PAGE_UP: '',
[00:02:57]               │             PAGE_DOWN: '',
[00:02:57]               │             END: '',
[00:02:57]               │             HOME: '',
[00:02:57]               │             ARROW_LEFT: '',
[00:02:57]               │             LEFT: '',
[00:02:57]               │             ARROW_UP: '',
[00:02:57]               │             UP: '',
[00:02:57]               │             ARROW_RIGHT: '',
[00:02:57]               │             RIGHT: '',
[00:02:57]               │             ARROW_DOWN: '',
[00:02:57]               │             DOWN: '',
[00:02:57]               │             INSERT: '',
[00:02:57]               │             DELETE: '',
[00:02:57]               │             SEMICOLON: '',
[00:02:57]               │             EQUALS: '',
[00:02:57]               │             NUMPAD0: '',
[00:02:57]               │             NUMPAD1: '',
[00:02:57]               │             NUMPAD2: '',
[00:02:57]               │             NUMPAD3: '',
[00:02:57]               │             NUMPAD4: '',
[00:02:57]               │             NUMPAD5: '',
[00:02:57]               │             NUMPAD6: '',
[00:02:57]               │             NUMPAD7: '',
[00:02:57]               │             NUMPAD8: '',
[00:02:57]               │             NUMPAD9: '',
[00:02:57]               │             MULTIPLY: '',
[00:02:57]               │             ADD: '',
[00:02:57]               │             SEPARATOR: '',
[00:02:57]               │             SUBTRACT: '',
[00:02:57]               │             DECIMAL: '',
[00:02:57]               │             DIVIDE: '',
[00:02:57]               │             F1: '',
[00:02:57]               │             F2: '',
[00:02:57]               │             F3: '',
[00:02:57]               │             F4: '',
[00:02:57]               │             F5: '',
[00:02:57]               │             F6: '',
[00:02:57]               │             F7: '',
[00:02:57]               │             F8: '',
[00:02:57]               │             F9: '',
[00:02:57]               │             F10: '',
[00:02:57]               │             F11: '',
[00:02:57]               │             F12: '',
[00:02:57]               │             COMMAND: '',
[00:02:57]               │             META: '',
[00:02:57]               │             ZENKAKU_HANKAKU: '',
[00:02:57]               │             chord: [Function] },
[00:02:57]               │          isW3CEnabled: true,
[00:02:57]               │          isChromium: true },
[00:02:57]               │        { _webElement: { driver_: [Object], id_: {} },
[00:02:57]               │          locator: null,
[00:02:57]               │          webDriver: 
[00:02:57]               │           { driver: [Object],
[00:02:57]               │             By: 
[00:02:57]               │              [Function: name(name) {
[00:02:57]               │                  return By.css('*[name="' + escapeCss(name) + '"]');
[00:02:57]               │                }],
[00:02:57]               │             until: [Object],
[00:02:57]               │             browserType: 'chrome',
[00:02:57]               │             'consoleLog$': [Object] },
[00:02:57]               │          timeout: 10000,
[00:02:57]               │          fixedHeaderHeight: 50,
[00:02:57]               │          logger: 
[00:02:57]               │           { identWidth: 14,
[00:02:57]               │             writers: [Object],
[00:02:57]               │             'written$': [Object] },
[00:02:57]               │          browserType: 'chrome',
[00:02:57]               │          By: 
[00:02:57]               │           [Function: name(name) {
[00:02:57]               │               return By.css('*[name="' + escapeCss(name) + '"]');
[00:02:57]               │             }],
[00:02:57]               │          driver: 
[00:02:57]               │           { session_: {},
[00:02:57]               │             executor_: [Object],
[00:02:57]               │             fileDetector_: null,
[00:02:57]               │             onQuit_: [Function: onQuit] },
[00:02:57]               │          Keys: 
[00:02:57]               │           { NULL: '',
[00:02:57]               │             CANCEL: '',
[00:02:57]               │             HELP: '',
[00:02:57]               │             BACK_SPACE: '',
[00:02:57]               │             TAB: '',
[00:02:57]               │             CLEAR: '',
[00:02:57]               │             RETURN: '',
[00:02:57]               │             ENTER: '',
[00:02:57]               │             SHIFT: '',
[00:02:57]               │             CONTROL: '',
[00:02:57]               │             ALT: '',
[00:02:57]               │             PAUSE: '',
[00:02:57]               │             ESCAPE: '',
[00:02:57]               │             SPACE: '',
[00:02:57]               │             PAGE_UP: '',
[00:02:57]               │             PAGE_DOWN: '',
[00:02:57]               │             END: '',
[00:02:57]               │             HOME: '',
[00:02:57]               │             ARROW_LEFT: '',
[00:02:57]               │             LEFT: '',
[00:02:57]               │             ARROW_UP: '',
[00:02:57]               │             UP: '',
[00:02:57]               │             ARROW_RIGHT: '',
[00:02:57]               │             RIGHT: '',
[00:02:57]               │             ARROW_DOWN: '',
[00:02:57]               │             DOWN: '',
[00:02:57]               │             INSERT: '',
[00:02:57]               │             DELETE: '',
[00:02:57]               │             SEMICOLON: '',
[00:02:57]               │             EQUALS: '',
[00:02:57]               │             NUMPAD0: '',
[00:02:57]               │             NUMPAD1: '',
[00:02:57]               │             NUMPAD2: '',
[00:02:57]               │             NUMPAD3: '',
[00:02:57]               │             NUMPAD4: '',
[00:02:57]               │             NUMPAD5: '',
[00:02:57]               │             NUMPAD6: '',
[00:02:57]               │             NUMPAD7: '',
[00:02:57]               │             NUMPAD8: '',
[00:02:57]               │             NUMPAD9: '',
[00:02:57]               │             MULTIPLY: '',
[00:02:57]               │             ADD: '',
[00:02:57]               │             SEPARATOR: '',
[00:02:57]               │             SUBTRACT: '',
[00:02:57]               │             DECIMAL: '',
[00:02:57]               │             DIVIDE: '',
[00:02:57]               │             F1: '',
[00:02:57]               │             F2: '',
[00:02:57]               │             F3: '',
[00:02:57]               │             F4: '',
[00:02:57]               │             F5: '',
[00:02:57]               │             F6: '',
[00:02:57]               │             F7: '',
[00:02:57]               │             F8: '',
[00:02:57]               │             F9: '',
[00:02:57]               │             F10: '',
[00:02:57]               │             F11: '',
[00:02:57]               │             F12: '',
[00:02:57]               │             COMMAND: '',
[00:02:57]               │             META: '',
[00:02:57]               │             ZENKAKU_HANKAKU: '',
[00:02:57]               │             chord: [Function] },
[00:02:57]               │          isW3CEnabled: true,
[00:02:57]               │          isChromium: true } ] to have a length of 5 but got 4
[00:02:57]               │ debg TestSubjects.findAll(canvasWorkpadPage > canvasWorkpadPageElementContent)
[00:02:57]               │ debg Find.allByCssSelector('[data-test-subj="canvasWorkpadPage"] [data-test-subj="canvasWorkpadPageElementContent"]') with timeout=10000
[00:02:58]               │ debg TestSubjects.findAll(canvasWorkpadPage > canvasWorkpadPageElementContent)
[00:02:58]               │ debg Find.allByCssSelector('[data-test-subj="canvasWorkpadPage"] [data-test-subj="canvasWorkpadPageElementContent"]') with timeout=10000
[00:02:58]               └- ✓ pass  (2.3s) "Canvas app custom elements adds the custom element to the workpad when prompted"
[00:02:58]             └-> saves custom element modifications
[00:02:58]               └-> "before each" hook: global before each
[00:02:58]               │ debg TestSubjects.click(add-element-button)
[00:02:58]               │ debg Find.clickByCssSelector('[data-test-subj="add-element-button"]') with timeout=10000
[00:02:58]               │ debg Find.findByCssSelector('[data-test-subj="add-element-button"]') with timeout=10000
[00:02:58]               │ debg Find.clickByCssSelector('#customElements') with timeout=20000
[00:02:58]               │ debg Find.findByCssSelector('#customElements') with timeout=20000
[00:02:58]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:02:59]               │ debg TestSubjects.setValue(canvasCustomElementForm-name, My Edited New Element)
[00:02:59]               │ debg TestSubjects.click(canvasCustomElementForm-name)
[00:02:59]               │ debg Find.clickByCssSelector('[data-test-subj="canvasCustomElementForm-name"]') with timeout=10000
[00:02:59]               │ debg Find.findByCssSelector('[data-test-subj="canvasCustomElementForm-name"]') with timeout=10000
[00:02:59]               │ debg TestSubjects.setValue(canvasCustomElementForm-description, An excellent edited element)
[00:02:59]               │ debg TestSubjects.click(canvasCustomElementForm-description)
[00:02:59]               │ debg Find.clickByCssSelector('[data-test-subj="canvasCustomElementForm-description"]') with timeout=10000
[00:02:59]               │ debg Find.findByCssSelector('[data-test-subj="canvasCustomElementForm-description"]') with timeout=10000
[00:03:00]               │ debg TestSubjects.click(canvasCustomElementForm-submit)
[00:03:00]               │ debg Find.clickByCssSelector('[data-test-subj="canvasCustomElementForm-submit"]') with timeout=10000
[00:03:00]               │ debg Find.findByCssSelector('[data-test-subj="canvasCustomElementForm-submit"]') with timeout=10000
[00:03:00]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"] .canvasElementCard__wrapper .euiCard__title') with timeout=10000
[00:03:00]               │ debg --- retry.try error: expected 'My New Element' to contain 'My Edited New Element'
[00:03:00]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"] .canvasElementCard__wrapper .euiCard__title') with timeout=10000
[00:03:00]               │ debg --- retry.try failed again with the same message...
[00:03:01]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"] .canvasElementCard__wrapper .euiCard__title') with timeout=10000
[00:03:01]               └- ✓ pass  (3.1s) "Canvas app custom elements saves custom element modifications"
[00:03:01]             └-> deletes custom element when prompted
[00:03:01]               └-> "before each" hook: global before each
[00:03:01]               │ debg Find.clickByCssSelector('#customElements') with timeout=20000
[00:03:01]               │ debg Find.findByCssSelector('#customElements') with timeout=20000
[00:03:01]               │ debg Find.allByCssSelector('[aria-labelledby="customElements"] .canvasElementCard__wrapper') with timeout=10000
[00:03:02]               │ debg TestSubjects.click(confirmModalConfirmButton)
[00:03:02]               │ debg Find.clickByCssSelector('[data-test-subj="confirmModalConfirmButton"]') with timeout=10000
[00:03:02]               │ debg Find.findByCssSelector('[data-test-subj="confirmModalConfirmButton"]') with timeout=10000
[00:03:02]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:02]               │ debg --- retry.try error: expected [ { _webElement: { driver_: [Object], id_: {} },
[00:03:02]               │          locator: null,
[00:03:02]               │          webDriver: 
[00:03:02]               │           { driver: [Object],
[00:03:02]               │             By: 
[00:03:02]               │              [Function: name(name) {
[00:03:02]               │                  return By.css('*[name="' + escapeCss(name) + '"]');
[00:03:02]               │                }],
[00:03:02]               │             until: [Object],
[00:03:02]               │             browserType: 'chrome',
[00:03:02]               │             'consoleLog$': [Object] },
[00:03:02]               │          timeout: 10000,
[00:03:02]               │          fixedHeaderHeight: 50,
[00:03:02]               │          logger: 
[00:03:02]               │           { identWidth: 14,
[00:03:02]               │             writers: [Object],
[00:03:02]               │             'written$': [Object] },
[00:03:02]               │          browserType: 'chrome',
[00:03:02]               │          By: 
[00:03:02]               │           [Function: name(name) {
[00:03:02]               │               return By.css('*[name="' + escapeCss(name) + '"]');
[00:03:02]               │             }],
[00:03:02]               │          driver: 
[00:03:02]               │           { session_: {},
[00:03:02]               │             executor_: [Object],
[00:03:02]               │             fileDetector_: null,
[00:03:02]               │             onQuit_: [Function: onQuit] },
[00:03:02]               │          Keys: 
[00:03:02]               │           { NULL: '',
[00:03:02]               │             CANCEL: '',
[00:03:02]               │             HELP: '',
[00:03:02]               │             BACK_SPACE: '',
[00:03:02]               │             TAB: '',
[00:03:02]               │             CLEAR: '',
[00:03:02]               │             RETURN: '',
[00:03:02]               │             ENTER: '',
[00:03:02]               │             SHIFT: '',
[00:03:02]               │             CONTROL: '',
[00:03:02]               │             ALT: '',
[00:03:02]               │             PAUSE: '',
[00:03:02]               │             ESCAPE: '',
[00:03:02]               │             SPACE: '',
[00:03:02]               │             PAGE_UP: '',
[00:03:02]               │             PAGE_DOWN: '',
[00:03:02]               │             END: '',
[00:03:02]               │             HOME: '',
[00:03:02]               │             ARROW_LEFT: '',
[00:03:02]               │             LEFT: '',
[00:03:02]               │             ARROW_UP: '',
[00:03:02]               │             UP: '',
[00:03:02]               │             ARROW_RIGHT: '',
[00:03:02]               │             RIGHT: '',
[00:03:02]               │             ARROW_DOWN: '',
[00:03:02]               │             DOWN: '',
[00:03:02]               │             INSERT: '',
[00:03:02]               │             DELETE: '',
[00:03:02]               │             SEMICOLON: '',
[00:03:02]               │             EQUALS: '',
[00:03:02]               │             NUMPAD0: '',
[00:03:02]               │             NUMPAD1: '',
[00:03:02]               │             NUMPAD2: '',
[00:03:02]               │             NUMPAD3: '',
[00:03:02]               │             NUMPAD4: '',
[00:03:02]               │             NUMPAD5: '',
[00:03:02]               │             NUMPAD6: '',
[00:03:02]               │             NUMPAD7: '',
[00:03:02]               │             NUMPAD8: '',
[00:03:02]               │             NUMPAD9: '',
[00:03:02]               │             MULTIPLY: '',
[00:03:02]               │             ADD: '',
[00:03:02]               │             SEPARATOR: '',
[00:03:02]               │             SUBTRACT: '',
[00:03:02]               │             DECIMAL: '',
[00:03:02]               │             DIVIDE: '',
[00:03:02]               │             F1: '',
[00:03:02]               │             F2: '',
[00:03:02]               │             F3: '',
[00:03:02]               │             F4: '',
[00:03:02]               │             F5: '',
[00:03:02]               │             F6: '',
[00:03:02]               │             F7: '',
[00:03:02]               │             F8: '',
[00:03:02]               │             F9: '',
[00:03:02]               │             F10: '',
[00:03:02]               │             F11: '',
[00:03:02]               │             F12: '',
[00:03:02]               │             COMMAND: '',
[00:03:02]               │             META: '',
[00:03:02]               │             ZENKAKU_HANKAKU: '',
[00:03:02]               │             chord: [Function] },
[00:03:02]               │          isW3CEnabled: true,
[00:03:02]               │          isChromium: true } ] to have a length of 0 but got 1
[00:03:02]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:02]               │ debg --- retry.try failed again with the same message...
[00:03:03]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:03]               │ debg --- retry.try failed again with the same message...
[00:03:03]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:03]               │ debg --- retry.try failed again with the same message...
[00:03:04]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:04]               │ debg --- retry.try failed again with the same message...
[00:03:04]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:04]               │ debg --- retry.try failed again with the same message...
[00:03:05]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:05]               │ debg --- retry.try failed again with the same message...
[00:03:05]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:05]               │ debg --- retry.try failed again with the same message...
[00:03:06]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:06]               │ debg --- retry.try failed again with the same message...
[00:03:06]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:06]               │ debg --- retry.try failed again with the same message...
[00:03:07]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:07]               │ debg --- retry.try failed again with the same message...
[00:03:07]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:07]               │ debg --- retry.try failed again with the same message...
[00:03:08]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:08]               │ debg --- retry.try failed again with the same message...
[00:03:09]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:09]               │ debg --- retry.try failed again with the same message...
[00:03:09]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:09]               │ debg --- retry.try failed again with the same message...
[00:03:10]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:10]               │ debg --- retry.try failed again with the same message...
[00:03:10]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:10]               │ debg --- retry.try failed again with the same message...
[00:03:11]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:11]               │ debg --- retry.try failed again with the same message...
[00:03:11]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:11]               │ debg --- retry.try failed again with the same message...
[00:03:12]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:12]               │ debg --- retry.try failed again with the same message...
[00:03:12]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:12]               │ debg --- retry.try failed again with the same message...
[00:03:13]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:13]               │ debg --- retry.try failed again with the same message...
[00:03:13]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:13]               │ debg --- retry.try failed again with the same message...
[00:03:14]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:14]               │ debg --- retry.try failed again with the same message...
[00:03:14]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:14]               │ debg --- retry.try failed again with the same message...
[00:03:15]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:15]               │ debg --- retry.try failed again with the same message...
[00:03:15]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:15]               │ debg --- retry.try failed again with the same message...
[00:03:16]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:16]               │ debg --- retry.try failed again with the same message...
[00:03:16]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:16]               │ debg --- retry.try failed again with the same message...
[00:03:17]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:17]               │ debg --- retry.try failed again with the same message...
[00:03:17]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:18]               │ debg --- retry.try failed again with the same message...
[00:03:18]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:18]               │ debg --- retry.try failed again with the same message...
[00:03:19]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:19]               │ debg --- retry.try failed again with the same message...
[00:03:19]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:19]               │ debg --- retry.try failed again with the same message...
[00:03:20]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:20]               │ debg --- retry.try failed again with the same message...
[00:03:20]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:20]               │ debg --- retry.try failed again with the same message...
[00:03:21]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:21]               │ debg --- retry.try failed again with the same message...
[00:03:21]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:21]               │ debg --- retry.try failed again with the same message...
[00:03:22]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:22]               │ debg --- retry.try failed again with the same message...
[00:03:22]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:22]               │ debg --- retry.try failed again with the same message...
[00:03:23]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:23]               │ debg --- retry.try failed again with the same message...
[00:03:23]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:23]               │ debg --- retry.try failed again with the same message...
[00:03:24]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:24]               │ debg --- retry.try failed again with the same message...
[00:03:24]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:24]               │ debg --- retry.try failed again with the same message...
[00:03:25]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:25]               │ debg --- retry.try failed again with the same message...
[00:03:25]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:25]               │ debg --- retry.try failed again with the same message...
[00:03:26]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:26]               │ debg --- retry.try failed again with the same message...
[00:03:26]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:27]               │ debg --- retry.try failed again with the same message...
[00:03:27]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:27]               │ debg --- retry.try failed again with the same message...
[00:03:28]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:28]               │ debg --- retry.try failed again with the same message...
[00:03:28]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:28]               │ debg --- retry.try failed again with the same message...
[00:03:29]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:29]               │ debg --- retry.try failed again with the same message...
[00:03:29]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:29]               │ debg --- retry.try failed again with the same message...
[00:03:30]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:30]               │ debg --- retry.try failed again with the same message...
[00:03:30]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:30]               │ debg --- retry.try failed again with the same message...
[00:03:31]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:31]               │ debg --- retry.try failed again with the same message...
[00:03:31]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:31]               │ debg --- retry.try failed again with the same message...
[00:03:32]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:32]               │ debg --- retry.try failed again with the same message...
[00:03:32]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:32]               │ debg --- retry.try failed again with the same message...
[00:03:33]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:33]               │ debg --- retry.try failed again with the same message...
[00:03:33]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:33]               │ debg --- retry.try failed again with the same message...
[00:03:34]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:34]               │ debg --- retry.try failed again with the same message...
[00:03:34]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:34]               │ debg --- retry.try failed again with the same message...
[00:03:35]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:35]               │ debg --- retry.try failed again with the same message...
[00:03:35]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:36]               │ debg --- retry.try failed again with the same message...
[00:03:36]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:36]               │ debg --- retry.try failed again with the same message...
[00:03:37]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:37]               │ debg --- retry.try failed again with the same message...
[00:03:37]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:37]               │ debg --- retry.try failed again with the same message...
[00:03:38]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:38]               │ debg --- retry.try failed again with the same message...
[00:03:38]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:38]               │ debg --- retry.try failed again with the same message...
[00:03:39]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:39]               │ debg --- retry.try failed again with the same message...
[00:03:39]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:39]               │ debg --- retry.try failed again with the same message...
[00:03:40]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:40]               │ debg --- retry.try failed again with the same message...
[00:03:40]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:40]               │ debg --- retry.try failed again with the same message...
[00:03:41]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:41]               │ debg --- retry.try failed again with the same message...
[00:03:41]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:41]               │ debg --- retry.try failed again with the same message...
[00:03:42]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:42]               │ debg --- retry.try failed again with the same message...
[00:03:42]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:42]               │ debg --- retry.try failed again with the same message...
[00:03:43]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:43]               │ debg --- retry.try failed again with the same message...
[00:03:43]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:43]               │ debg --- retry.try failed again with the same message...
[00:03:44]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:44]               │ debg --- retry.try failed again with the same message...
[00:03:44]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:44]               │ debg --- retry.try failed again with the same message...
[00:03:45]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:45]               │ debg --- retry.try failed again with the same message...
[00:03:46]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:46]               │ debg --- retry.try failed again with the same message...
[00:03:46]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:46]               │ debg --- retry.try failed again with the same message...
[00:03:47]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:47]               │ debg --- retry.try failed again with the same message...
[00:03:47]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:47]               │ debg --- retry.try failed again with the same message...
[00:03:48]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:48]               │ debg --- retry.try failed again with the same message...
[00:03:48]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:48]               │ debg --- retry.try failed again with the same message...
[00:03:49]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:49]               │ debg --- retry.try failed again with the same message...
[00:03:49]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:49]               │ debg --- retry.try failed again with the same message...
[00:03:50]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:50]               │ debg --- retry.try failed again with the same message...
[00:03:50]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:50]               │ debg --- retry.try failed again with the same message...
[00:03:51]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:51]               │ debg --- retry.try failed again with the same message...
[00:03:51]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:51]               │ debg --- retry.try failed again with the same message...
[00:03:52]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:52]               │ debg --- retry.try failed again with the same message...
[00:03:52]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:52]               │ debg --- retry.try failed again with the same message...
[00:03:53]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:53]               │ debg --- retry.try failed again with the same message...
[00:03:53]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:53]               │ debg --- retry.try failed again with the same message...
[00:03:54]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:54]               │ debg --- retry.try failed again with the same message...
[00:03:54]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:54]               │ debg --- retry.try failed again with the same message...
[00:03:55]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:55]               │ debg --- retry.try failed again with the same message...
[00:03:55]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:56]               │ debg --- retry.try failed again with the same message...
[00:03:56]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:56]               │ debg --- retry.try failed again with the same message...
[00:03:57]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:57]               │ debg --- retry.try failed again with the same message...
[00:03:57]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:57]               │ debg --- retry.try failed again with the same message...
[00:03:58]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:58]               │ debg --- retry.try failed again with the same message...
[00:03:58]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:58]               │ debg --- retry.try failed again with the same message...
[00:03:59]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:59]               │ debg --- retry.try failed again with the same message...
[00:03:59]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:03:59]               │ debg --- retry.try failed again with the same message...
[00:04:00]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:00]               │ debg --- retry.try failed again with the same message...
[00:04:00]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:00]               │ debg --- retry.try failed again with the same message...
[00:04:01]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:01]               │ debg --- retry.try failed again with the same message...
[00:04:01]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:01]               │ debg --- retry.try failed again with the same message...
[00:04:02]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:02]               │ debg --- retry.try failed again with the same message...
[00:04:02]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:02]               │ debg --- retry.try failed again with the same message...
[00:04:03]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:03]               │ debg --- retry.try failed again with the same message...
[00:04:03]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:03]               │ debg --- retry.try failed again with the same message...
[00:04:04]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:04]               │ debg --- retry.try failed again with the same message...
[00:04:04]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:04]               │ debg --- retry.try failed again with the same message...
[00:04:05]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:05]               │ debg --- retry.try failed again with the same message...
[00:04:05]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:06]               │ debg --- retry.try failed again with the same message...
[00:04:06]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:06]               │ debg --- retry.try failed again with the same message...
[00:04:07]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:07]               │ debg --- retry.try failed again with the same message...
[00:04:07]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:07]               │ debg --- retry.try failed again with the same message...
[00:04:08]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:08]               │ debg --- retry.try failed again with the same message...
[00:04:08]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:08]               │ debg --- retry.try failed again with the same message...
[00:04:09]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:09]               │ debg --- retry.try failed again with the same message...
[00:04:09]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:09]               │ debg --- retry.try failed again with the same message...
[00:04:10]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:10]               │ debg --- retry.try failed again with the same message...
[00:04:10]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:10]               │ debg --- retry.try failed again with the same message...
[00:04:11]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:11]               │ debg --- retry.try failed again with the same message...
[00:04:11]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:11]               │ debg --- retry.try failed again with the same message...
[00:04:12]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:12]               │ debg --- retry.try failed again with the same message...
[00:04:12]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:12]               │ debg --- retry.try failed again with the same message...
[00:04:13]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:13]               │ debg --- retry.try failed again with the same message...
[00:04:13]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:13]               │ debg --- retry.try failed again with the same message...
[00:04:14]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:14]               │ debg --- retry.try failed again with the same message...
[00:04:14]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:14]               │ debg --- retry.try failed again with the same message...
[00:04:15]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:15]               │ debg --- retry.try failed again with the same message...
[00:04:16]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:16]               │ debg --- retry.try failed again with the same message...
[00:04:16]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:16]               │ debg --- retry.try failed again with the same message...
[00:04:17]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:17]               │ debg --- retry.try failed again with the same message...
[00:04:17]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:17]               │ debg --- retry.try failed again with the same message...
[00:04:18]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:18]               │ debg --- retry.try failed again with the same message...
[00:04:18]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:18]               │ debg --- retry.try failed again with the same message...
[00:04:19]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:19]               │ debg --- retry.try failed again with the same message...
[00:04:19]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:19]               │ debg --- retry.try failed again with the same message...
[00:04:20]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:20]               │ debg --- retry.try failed again with the same message...
[00:04:20]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:20]               │ debg --- retry.try failed again with the same message...
[00:04:21]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:21]               │ debg --- retry.try failed again with the same message...
[00:04:21]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:21]               │ debg --- retry.try failed again with the same message...
[00:04:22]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:22]               │ debg --- retry.try failed again with the same message...
[00:04:22]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:22]               │ debg --- retry.try failed again with the same message...
[00:04:23]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:23]               │ debg --- retry.try failed again with the same message...
[00:04:23]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:23]               │ debg --- retry.try failed again with the same message...
[00:04:24]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:24]               │ debg --- retry.try failed again with the same message...
[00:04:24]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:24]               │ debg --- retry.try failed again with the same message...
[00:04:25]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:25]               │ debg --- retry.try failed again with the same message...
[00:04:25]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:26]               │ debg --- retry.try failed again with the same message...
[00:04:26]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:26]               │ debg --- retry.try failed again with the same message...
[00:04:27]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:27]               │ debg --- retry.try failed again with the same message...
[00:04:27]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:27]               │ debg --- retry.try failed again with the same message...
[00:04:28]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:28]               │ debg --- retry.try failed again with the same message...
[00:04:28]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:28]               │ debg --- retry.try failed again with the same message...
[00:04:29]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:29]               │ debg --- retry.try failed again with the same message...
[00:04:29]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:29]               │ debg --- retry.try failed again with the same message...
[00:04:30]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:30]               │ debg --- retry.try failed again with the same message...
[00:04:30]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:30]               │ debg --- retry.try failed again with the same message...
[00:04:31]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:31]               │ debg --- retry.try failed again with the same message...
[00:04:31]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:31]               │ debg --- retry.try failed again with the same message...
[00:04:32]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:32]               │ debg --- retry.try failed again with the same message...
[00:04:32]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:32]               │ debg --- retry.try failed again with the same message...
[00:04:33]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:33]               │ debg --- retry.try failed again with the same message...
[00:04:33]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:33]               │ debg --- retry.try failed again with the same message...
[00:04:34]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:34]               │ debg --- retry.try failed again with the same message...
[00:04:34]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:34]               │ debg --- retry.try failed again with the same message...
[00:04:35]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:35]               │ debg --- retry.try failed again with the same message...
[00:04:35]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:35]               │ debg --- retry.try failed again with the same message...
[00:04:36]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:36]               │ debg --- retry.try failed again with the same message...
[00:04:37]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:37]               │ debg --- retry.try failed again with the same message...
[00:04:37]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:37]               │ debg --- retry.try failed again with the same message...
[00:04:38]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:38]               │ debg --- retry.try failed again with the same message...
[00:04:38]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:38]               │ debg --- retry.try failed again with the same message...
[00:04:39]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:39]               │ debg --- retry.try failed again with the same message...
[00:04:39]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:39]               │ debg --- retry.try failed again with the same message...
[00:04:40]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:40]               │ debg --- retry.try failed again with the same message...
[00:04:40]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:40]               │ debg --- retry.try failed again with the same message...
[00:04:41]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:41]               │ debg --- retry.try failed again with the same message...
[00:04:41]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:41]               │ debg --- retry.try failed again with the same message...
[00:04:42]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:42]               │ debg --- retry.try failed again with the same message...
[00:04:42]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:42]               │ debg --- retry.try failed again with the same message...
[00:04:43]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:43]               │ debg --- retry.try failed again with the same message...
[00:04:43]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:43]               │ debg --- retry.try failed again with the same message...
[00:04:44]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:44]               │ debg --- retry.try failed again with the same message...
[00:04:44]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:44]               │ debg --- retry.try failed again with the same message...
[00:04:45]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:45]               │ debg --- retry.try failed again with the same message...
[00:04:45]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:45]               │ debg --- retry.try failed again with the same message...
[00:04:46]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:46]               │ debg --- retry.try failed again with the same message...
[00:04:46]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:47]               │ debg --- retry.try failed again with the same message...
[00:04:47]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:47]               │ debg --- retry.try failed again with the same message...
[00:04:48]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:48]               │ debg --- retry.try failed again with the same message...
[00:04:48]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:48]               │ debg --- retry.try failed again with the same message...
[00:04:49]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:49]               │ debg --- retry.try failed again with the same message...
[00:04:49]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:49]               │ debg --- retry.try failed again with the same message...
[00:04:50]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:50]               │ debg --- retry.try failed again with the same message...
[00:04:50]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:50]               │ debg --- retry.try failed again with the same message...
[00:04:51]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:51]               │ debg --- retry.try failed again with the same message...
[00:04:51]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:51]               │ debg --- retry.try failed again with the same message...
[00:04:52]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:52]               │ debg --- retry.try failed again with the same message...
[00:04:52]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:52]               │ debg --- retry.try failed again with the same message...
[00:04:53]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:53]               │ debg --- retry.try failed again with the same message...
[00:04:53]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:53]               │ debg --- retry.try failed again with the same message...
[00:04:54]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:54]               │ debg --- retry.try failed again with the same message...
[00:04:54]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:54]               │ debg --- retry.try failed again with the same message...
[00:04:55]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:55]               │ debg --- retry.try failed again with the same message...
[00:04:55]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:55]               │ debg --- retry.try failed again with the same message...
[00:04:56]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:56]               │ debg --- retry.try failed again with the same message...
[00:04:56]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:56]               │ debg --- retry.try failed again with the same message...
[00:04:57]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:57]               │ debg --- retry.try failed again with the same message...
[00:04:58]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:58]               │ debg --- retry.try failed again with the same message...
[00:04:58]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:58]               │ debg --- retry.try failed again with the same message...
[00:04:59]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:59]               │ debg --- retry.try failed again with the same message...
[00:04:59]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:04:59]               │ debg --- retry.try failed again with the same message...
[00:05:00]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:05:00]               │ debg --- retry.try failed again with the same message...
[00:05:00]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:05:00]               │ debg --- retry.try failed again with the same message...
[00:05:01]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:05:01]               │ debg --- retry.try failed again with the same message...
[00:05:01]               │ debg Find.findByCssSelector('[aria-labelledby="customElements"]') with timeout=10000
[00:05:01]               │ debg --- retry.try failed again with the same message...
[00:05:02]               │ info Taking screenshot "/dev/shm/workspace/kibana/x-pack/test/functional/screenshots/failure/Canvas app custom elements deletes custom element when prompted.png"
[00:05:02]               │ info Current URL is: http://localhost:6121/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:05:02]               │ info Saving page source to: /dev/shm/workspace/kibana/x-pack/test/functional/failure_debug/html/Canvas app custom elements deletes custom element when prompted.html
[00:05:02]               └- ✖ fail: "Canvas app custom elements deletes custom element when prompted"
[00:05:02]               │

Stack Trace

Error: retry.try timeout: Error: expected [ { _webElement: { driver_: [Object], id_: {} },
    locator: null,
    webDriver: 
     { driver: [Object],
       By: 
        [Function: name(name) {
            return By.css('*[name="' + escapeCss(name) + '"]');
          }],
       until: [Object],
       browserType: 'chrome',
       'consoleLog$': [Object] },
    timeout: 10000,
    fixedHeaderHeight: 50,
    logger: 
     { identWidth: 14,
       writers: [Object],
       'written$': [Object] },
    browserType: 'chrome',
    By: 
     [Function: name(name) {
         return By.css('*[name="' + escapeCss(name) + '"]');
       }],
    driver: 
     { session_: {},
       executor_: [Object],
       fileDetector_: null,
       onQuit_: [Function: onQuit] },
    Keys: 
     { NULL: '',
       CANCEL: '',
       HELP: '',
       BACK_SPACE: '',
       TAB: '',
       CLEAR: '',
       RETURN: '',
       ENTER: '',
       SHIFT: '',
       CONTROL: '',
       ALT: '',
       PAUSE: '',
       ESCAPE: '',
       SPACE: '',
       PAGE_UP: '',
       PAGE_DOWN: '',
       END: '',
       HOME: '',
       ARROW_LEFT: '',
       LEFT: '',
       ARROW_UP: '',
       UP: '',
       ARROW_RIGHT: '',
       RIGHT: '',
       ARROW_DOWN: '',
       DOWN: '',
       INSERT: '',
       DELETE: '',
       SEMICOLON: '',
       EQUALS: '',
       NUMPAD0: '',
       NUMPAD1: '',
       NUMPAD2: '',
       NUMPAD3: '',
       NUMPAD4: '',
       NUMPAD5: '',
       NUMPAD6: '',
       NUMPAD7: '',
       NUMPAD8: '',
       NUMPAD9: '',
       MULTIPLY: '',
       ADD: '',
       SEPARATOR: '',
       SUBTRACT: '',
       DECIMAL: '',
       DIVIDE: '',
       F1: '',
       F2: '',
       F3: '',
       F4: '',
       F5: '',
       F6: '',
       F7: '',
       F8: '',
       F9: '',
       F10: '',
       F11: '',
       F12: '',
       COMMAND: '',
       META: '',
       ZENKAKU_HANKAKU: '',
       chord: [Function] },
    isW3CEnabled: true,
    isChromium: true } ] to have a length of 0 but got 1
    at Assertion.assert (/dev/shm/workspace/kibana/packages/kbn-expect/expect.js:100:11)
    at Assertion.length (/dev/shm/workspace/kibana/packages/kbn-expect/expect.js:374:8)
    at retry.try (test/functional/apps/canvas/custom_elements.ts:157:45)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at onFailure (/dev/shm/workspace/kibana/test/common/services/retry/retry_for_success.ts:28:9)
    at retryForSuccess (/dev/shm/workspace/kibana/test/common/services/retry/retry_for_success.ts:68:13)

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@kertal kertal self-requested a review April 9, 2020 15:44
Copy link
Member

@kertal kertal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code LGTM 👍 , tested locally with Chrome OS, MacOs 10.14.6, works, Дзякуй!

Copy link
Contributor

@mbondyra mbondyra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haven't tested, but went through the code and it LGTM! 💯

@maryia-lapata maryia-lapata merged commit dfea621 into elastic:master Apr 9, 2020
@maryia-lapata maryia-lapata deleted the agg-response-cleanup branch April 9, 2020 15:57
jloleysens added a commit to jloleysens/kibana that referenced this pull request Apr 9, 2020
…chore/put-all-xjson-together

* 'master' of github.com:elastic/kibana:
  [EPM] Update UI copy to use `integration` (elastic#63077)
  [NP] Inline buildPointSeriesData and buildHierarchicalData dependencies (elastic#61575)
  [Maps] create NOT EXISTS filter for tooltip property with no value (elastic#62849)
  [Endpoint] Add link to Logs UI to the Host Details view (elastic#62852)
  [UI COPY] Fixes typo in max_shingle_size for search_as_you_type (elastic#63071)
  [APM] docs: add alerting examples for APM (elastic#62864)
  [EPM] Change PACKAGES_SAVED_OBJECT_TYPE id (elastic#62818)
  docs: fix rendering of bulleted list (elastic#62855)
  Exposed AddMessageVariables as separate component (elastic#63007)
  Add Data - Adding cloud reset password link to cloud instructions (elastic#62835)
  [ML] DF Analytics:  update memory estimate after adding exclude fields (elastic#62850)
  [Table Vis] Fix visualization overflow (elastic#62630)
  [Endpoint][EPM] Endpoint depending on ingest manager to initialize (elastic#62871)
  [Remote clusters] Fix flaky jest tests (elastic#58768)
  [Discover] Hide time picker when an indexpattern without timefield is selected (elastic#62134)
  Move search source parsing and serializing to data (elastic#59919)
  [ML] Functional tests - stabilize typing in mml input (elastic#63091)
  [data.search.aggs]: Clean up TimeBuckets implementation (elastic#62123)
  [ML] Functional transform tests - stabilize source selection (elastic#63087)
  add embed flag to saved object url as well (elastic#62926)

# Conflicts:
#	x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/es_index.tsx
maryia-lapata added a commit that referenced this pull request Apr 10, 2020
…es (#61575) (#63145)

* Move buildHierarchicalData to vislib

* Move shortened version of buildPointSeriesData to Discover

* Move buildPointSeriesData to vis_type_vislib

* Convert unit tests to jest

* Remove ui/agg_response

* Convert point_series files to TS

* Update TS in unit tests

* Convert buildHierarchicalData to TS

* Convert buildPointSeriesData to TS in Discover

* Clean TS in Discover

* Update TS for buildHierarchicalData

* Update buildHierarchicalData unit tests

* Clean up TS in point_series

* Add unit tests fro response_handler.js

* Simplify point_series for Discover

* Return array for data

* Add check for empty row

* Simplify point_series for Discover

* Return all points

* Specify TS

* Refactoring

* Simplifying

* improve types

* Update _get_point.test.ts

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Joe Reuter <johannes.reuter@elastic.co>

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Joe Reuter <johannes.reuter@elastic.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Inline buildPointSeriesData and buildHierarchicalData dependencies
6 participants