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

Verify that we've navigated to Settings by checking the title. #21245

Merged
merged 7 commits into from
Jul 27, 2018

Conversation

cjcenizal
Copy link
Contributor

Addresses flaky afterAll:

18:46:48    │ proc  [ftr]      └- ✖ fail: "visualize app visualize lab mode "after all" hook"
18:46:48    │ proc  [ftr]      │        tryForTime timeout: Error: tryForTime timeout: [POST http://localhost:9515/session/d170b95da03b3f1a5b0ce51e6fb162f0/element / {"using":"css selector","value":"[data-test-subj~=\"advancedSetting-resetField-visualize:enableLabs\"]"}] no such element: Unable to locate element: {"method":"css selector","selector":"[data-test-subj~="advancedSetting-resetField-visualize:enableLabs"]"}

We should make this the canonical way of verifying navigation. Users look for titles to verify their location, and so should our functional tests.

@cjcenizal cjcenizal added the Feature:Visualizations Generic visualization features (in case no more specific feature label is available) label Jul 25, 2018
@cjcenizal
Copy link
Contributor Author

CC @elastic/kibana-qa

@cjcenizal
Copy link
Contributor Author

This looks like it is related to #19743, but doesn't directly address it based on the discussion.

Copy link
Contributor

@jen-huang jen-huang 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

@elasticmachine
Copy link
Contributor

💔 Build Failed

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@cjcenizal
Copy link
Contributor Author

Retest

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@cjcenizal
Copy link
Contributor Author

Retest

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@cjcenizal
Copy link
Contributor Author

Retest

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@cjcenizal
Copy link
Contributor Author

Retest

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@cjcenizal
Copy link
Contributor Author

Retest

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@LeeDr LeeDr self-requested a review July 26, 2018 13:19
Copy link

@LeeDr LeeDr left a comment

Choose a reason for hiding this comment

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

LGTM - I didn't test this but Jenkins has multiple times and it looks like a pretty obvious improvement.
The built-in find timeout should wait a few seconds for the managementSettingsTitle to exist which should prevent errors if the next action tried to do something on that page. And if it fails, it will narrow down where the problem was sooner than without it.

@@ -45,7 +45,7 @@ export function SettingsPageProvider({ getService, getPageObjects }) {

async clickKibanaSettings() {
await this.clickLinkText('Advanced Settings');
await PageObjects.header.waitUntilLoadingHasFinished();
await testSubjects.exists('managementSettingsTitle');
Copy link
Contributor

@stacey-gammon stacey-gammon Jul 26, 2018

Choose a reason for hiding this comment

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

I think there is some confusion about what this function does. It returns true or false, it doesn't assert that that does indeed exist. I think the default time is like 1 second, so this is the equivalent of adding a 1 second sleep. :) If you want to assert that it does exist, use find instead, as that will retry for something like 60 seconds, and fail if it is never found.

The function should probably be renamed getExists instead of exists to eliminate that confusion.

Copy link

Choose a reason for hiding this comment

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

Good catch. It does return true or false. And it has a 1 second timeout, but I don't think that means it's like a 1 second sleep. If it does find it it will return as quickly as it can. If it doesn't find it within 1 second it will return false.

Copy link
Contributor

Choose a reason for hiding this comment

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

Well, in the latter case, if it doesn't find it, it's like adding a 1 second sleep. In the former case, it's like adding a variable sleep, up to 1 seconds, possibly quicker. I'm wondering if that's why the tests appear more stable.


// Verify navigation is successful, or else fail the test consuming this.
expect(isSettingsLoaded).to.be(true);
return isSettingsLoaded;
Copy link
Contributor

Choose a reason for hiding this comment

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

Why return the value here? Looks like it's not used anywhere, and the name of the function doesn't really indicate it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

An async method expects a promise as a return value or if a promise isn't returned then it wraps the return value in Promise.resolve. I don't really know whether that means it's OK to return undefined or not, but resolving undefined feels unexpected to me. I don't have a strong feeling on this so if you feel like something else would make more sense, I'll roll with that.

Copy link
Contributor

Choose a reason for hiding this comment

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

Resolve to undefined makes more sense to me then resolving to true, as it would take looking into the function to understand what the value of true indicated. It doesn't even really mean anything because it always returns true, or fails. When I think of a function resolving to true, I think it can also resolve to false. Not that the option is resolve(true) or reject(). Anyway, most clickX functions don't return anything, so for the sake of consistency, I think we should follow suit.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Works for me, I'll change it. Thanks!

@cjcenizal
Copy link
Contributor Author

@stacey-gammon Done.

Copy link
Contributor

@stacey-gammon stacey-gammon left a comment

Choose a reason for hiding this comment

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

reviewed code, will leave the testing up to ci. :)

@cjcenizal
Copy link
Contributor Author

cjcenizal commented Jul 26, 2018

@LeeDr @stacey-gammon I added a testSubjects.existOrFail helper instead because I'm going to need to do this for other PRs. Could you look again?

@@ -37,6 +38,14 @@ export function TestSubjectsProvider({ getService }) {
return await find.existsByDisplayedByCssSelector(testSubjSelector(selector), timeout);
}

async existOrFail(selector, timeout = 1000) {
log.debug(`TestSubjects.existOrFail(${selector})`);
const doesExist = await find.existsByDisplayedByCssSelector(testSubjSelector(selector), timeout);
Copy link
Contributor

Choose a reason for hiding this comment

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

why not just do const doesExist = await this.exists(selector, timeout);?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good point, fixed!

Copy link
Contributor

@stacey-gammon stacey-gammon left a comment

Choose a reason for hiding this comment

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

lgtm!

async existOrFail(selector, timeout = 1000) {
log.debug(`TestSubjects.existOrFail(${selector})`);
const doesExist = await this.exists(selector, timeout);
// Verify element exists, or else fail the test consuming this.
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: comment seems unnecessary. But up to you!

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 normally would agree with you but I think the intention behind most of this test code becomes easily obscured so I've been erring on the side of caution with my comments.

@@ -53,6 +53,6 @@ export default function ({ getService, loadTestFile }) {
loadTestFile(require.resolve('./_histogram_request_start'));
loadTestFile(require.resolve('./_vega_chart'));
loadTestFile(require.resolve('./_lab_mode'));
loadTestFile(require.resolve('./_linked_saved_searches.js'));
// loadTestFile(require.resolve('./_linked_saved_searches.js'));
Copy link
Contributor

Choose a reason for hiding this comment

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

Oh don't forget to uncomment this

@@ -37,6 +38,13 @@ export function TestSubjectsProvider({ getService }) {
return await find.existsByDisplayedByCssSelector(testSubjSelector(selector), timeout);
}

async existOrFail(selector, timeout = 1000) {
Copy link
Contributor

Choose a reason for hiding this comment

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

I kind of like the name expectExists. But up to you.

@elasticmachine
Copy link
Contributor

💔 Build Failed

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@cjcenizal
Copy link
Contributor Author

Retest

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@cjcenizal
Copy link
Contributor Author

Retest

@elasticmachine
Copy link
Contributor

💔 Build Failed

Copy link

@LeeDr LeeDr left a comment

Choose a reason for hiding this comment

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

LGTM - I ran the lab mode test in a loop and had failures but they had a different cause and tracked in a diff PR.

@cjcenizal
Copy link
Contributor Author

Just got some unrelated failures. I believe these are the same ones @LeeDr saw.

23:15:53    │ proc  [ftr]    └-: visualize lab mode
23:15:53    │ proc  [ftr]      └-> "before all" hook
23:15:53    │ proc  [ftr]      └-> disabling does not break loading saved searches
23:15:53    │ proc  [ftr]        └-> "before each" hook: global before each
23:15:53    │ proc  [ftr]        │ debg  currentUrl = http://localhost:5620/app/kibana#discover/
23:15:53    │ proc  [ftr]        │           appUrl = http://localhost:5620/app/kibana#discover/
23:15:57    │ proc  [ftr]        │ debg  saveSearch
23:15:57    │ proc  [ftr]        │ debg  TestSubjects.click(discoverSaveButton)
23:15:57    │ proc  [ftr]        │ debg  TestSubjects.find(discoverSaveButton)
23:15:57    │ proc  [ftr]        │ debg  findByCssSelector [data-test-subj~="discoverSaveButton"]
23:15:58    │ proc  [ftr]        │ debg  TestSubjects.click(discoverSaveSearchButton)
23:15:58    │ proc  [ftr]        │ debg  TestSubjects.find(discoverSaveSearchButton)
23:15:58    │ proc  [ftr]        │ debg  findByCssSelector [data-test-subj~="discoverSaveSearchButton"]
23:15:58    │ proc  [ftr]        │ debg  isGlobalLoadingIndicatorVisible
23:15:58    │ proc  [ftr]        │ debg  TestSubjects.exists(globalLoadingIndicator)
23:15:58    │ proc  [ftr]        │ debg  existsByDisplayedByCssSelector [data-test-subj~="globalLoadingIndicator"]
23:15:58    │ info  [o.e.c.m.MetaDataIndexTemplateService] [i1Z7Vo2] adding template [kibana_index_template:.kibana] for index patterns [.kibana]
23:15:59    │ proc  [ftr]        │ debg  awaitGlobalLoadingIndicatorHidden
23:15:59    │ proc  [ftr]        │ debg  TestSubjects.find(globalLoadingIndicator-hidden)
23:15:59    │ proc  [ftr]        │ debg  findByCssSelector [data-test-subj~="globalLoadingIndicator-hidden"]
23:16:00    │ proc  [ftr]        │ debg  TestSubjects.click(discoverOpenButton)
23:16:00    │ proc  [ftr]        │ debg  TestSubjects.find(discoverOpenButton)
23:16:00    │ proc  [ftr]        │ debg  findByCssSelector [data-test-subj~="discoverOpenButton"]
23:16:00    │ proc  [ftr]        │ debg  TestSubjects.exists(loadSearchForm)
23:16:00    │ proc  [ftr]        │ debg  existsByDisplayedByCssSelector [data-test-subj~="loadSearchForm"]
23:16:00    │ proc  [ftr]        │ debg  isGlobalLoadingIndicatorVisible
23:16:00    │ proc  [ftr]        │ debg  TestSubjects.exists(globalLoadingIndicator)
23:16:00    │ proc  [ftr]        │ debg  existsByDisplayedByCssSelector [data-test-subj~="globalLoadingIndicator"]
23:16:00    │ proc  [ftr]        │ debg  awaitGlobalLoadingIndicatorHidden
23:16:00    │ proc  [ftr]        │ debg  TestSubjects.find(globalLoadingIndicator-hidden)
23:16:00    │ proc  [ftr]        │ debg  findByCssSelector [data-test-subj~="globalLoadingIndicator-hidden"]
23:16:00    │ proc  [ftr]        │ debg  find.byPartialLinkText(visualize_lab_mode_test)
23:16:10    │ proc  [ftr]        │ debg  --- tryForTime error: [POST http://localhost:9515/session/c3170b5dd400702941b538f74970e2a7/element / {"using":"partial link text","value":"visualize_lab_mode_test"}] no such element: Unable to locate element: {"method":"partial link text","selector":"visualize_lab_mode_test"}
23:16:10    │ proc  [ftr]        │         (Session info: chrome=65.0.3325.162)
23:16:10    │ proc  [ftr]        │         (Driver info: chromedriver=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752),platform=Linux 4.4.0-1050-aws x86_64)
23:16:21    │ proc  [ftr]        │ debg  --- tryForTime errored again with the same message  ...
23:16:31    │ proc  [ftr]        │ debg  --- tryForTime errored again with the same message  ...
23:16:42    │ proc  [ftr]        │ debg  --- tryForTime errored again with the same message  ...
23:16:42    │ proc  [ftr]        │ info  Taking screenshot "/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/test/functional/screenshots/failure/visualize app visualize lab mode disabling does not break loading saved searches.png"
23:16:42    │ proc  [ftr]        │ info  Current URL is: http://localhost:5620/app/kibana#/discover/db0f74b0-9129-11e8-b4fc-39108205ee26?_g=()&_a=(columns:!(_source),filters:!(),index:%27logstash-*%27,interval:auto,query:(language:lucene,query:%27%27),sort:!(%27@timestamp%27,desc))
23:16:42    │ proc  [ftr]        │ info  Saving page source to: /var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/test/functional/failure_debug/html/visualize app visualize lab mode disabling does not break loading saved searches.html
23:16:42    │ proc  [ftr]      └- ✖ fail: "visualize app visualize lab mode disabling does not break loading saved searches"
23:16:42    │ proc  [ftr]      │        tryForTime timeout: [POST http://localhost:9515/session/c3170b5dd400702941b538f74970e2a7/element / {"using":"partial link text","value":"visualize_lab_mode_test"}] no such element: Unable to locate element: {"method":"partial link text","selector":"visualize_lab_mode_test"}
23:16:42    │ proc  [ftr]      └-> "after all" hook
23:16:42    │ proc  [ftr]        │ debg  click Management tab
23:16:42    │ proc  [ftr]        │ debg  clickSelector(a[href*='management'])
23:16:42    │ proc  [ftr]        │ debg  clickByCssSelector(a[href*='management'])
23:16:42    │ proc  [ftr]        │ debg  findByCssSelector a[href*='management']
23:16:43    │ proc  [ftr]        │ debg  awaitGlobalLoadingIndicatorHidden
23:16:43    │ proc  [ftr]        │ debg  TestSubjects.find(globalLoadingIndicator-hidden)
23:16:43    │ proc  [ftr]        │ debg  findByCssSelector [data-test-subj~="globalLoadingIndicator-hidden"]
23:16:47    │ proc  [ftr]        │ debg  TestSubjects.existOrFail(managementSettingsTitle)
23:16:47    │ proc  [ftr]        │ debg  TestSubjects.exists(managementSettingsTitle)
23:16:47    │ proc  [ftr]        │ debg  existsByDisplayedByCssSelector [data-test-subj~="managementSettingsTitle"]
23:16:47    │ proc  [ftr]        │ debg  TestSubjects.click(advancedSetting-resetField-visualize:enableLabs)
23:16:47    │ proc  [ftr]        │ debg  TestSubjects.find(advancedSetting-resetField-visualize:enableLabs)
23:16:47    │ proc  [ftr]        │ debg  findByCssSelector [data-test-subj~="advancedSetting-resetField-visualize:enableLabs"]
23:16:57    │ proc  [ftr]        │ debg  --- tryForTime error: [POST http://localhost:9515/session/c3170b5dd400702941b538f74970e2a7/element / {"using":"css selector","value":"[data-test-subj~=\"advancedSetting-resetField-visualize:enableLabs\"]"}] no such element: Unable to locate element: {"method":"css selector","selector":"[data-test-subj~="advancedSetting-resetField-visualize:enableLabs"]"}
23:16:57    │ proc  [ftr]        │         (Session info: chrome=65.0.3325.162)
23:16:57    │ proc  [ftr]        │         (Driver info: chromedriver=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752),platform=Linux 4.4.0-1050-aws x86_64)
23:17:07    │ proc  [ftr]        │ debg  --- tryForTime errored again with the same message  ...
23:17:18    │ proc  [ftr]        │ debg  --- tryForTime errored again with the same message  ...
23:17:28    │ proc  [ftr]        │ debg  --- tryForTime errored again with the same message  ...
23:17:29    │ proc  [ftr]        │ debg  --- tryForTime error: tryForTime timeout: [POST http://localhost:9515/session/c3170b5dd400702941b538f74970e2a7/element / {"using":"css selector","value":"[data-test-subj~=\"advancedSetting-resetField-visualize:enableLabs\"]"}] no such element: Unable to locate element: {"method":"css selector","selector":"[data-test-subj~="advancedSetting-resetField-visualize:enableLabs"]"}
23:17:29    │ proc  [ftr]        │         (Session info: chrome=65.0.3325.162)
23:17:29    │ proc  [ftr]        │         (Driver info: chromedriver=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752),platform=Linux 4.4.0-1050-aws x86_64)
23:17:29    │ proc  [ftr]        │           at Server._post (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/test/functional/services/remote/verbose_remote_logging.js:34:21)
23:17:29    │ proc  [ftr]        │           at runRequest (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/leadfoot/Session.js:92:40)
23:17:29    │ proc  [ftr]        │           at /var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/leadfoot/Session.js:113:39
23:17:29    │ proc  [ftr]        │           at new Promise (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/dojo/_debug/Promise.ts:411:4)
23:17:29    │ proc  [ftr]        │           at Session._post (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/leadfoot/Session.js:67:10)
23:17:29    │ proc  [ftr]        │           at Session.find (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/leadfoot/Session.js:1328:15)
23:17:29    │ proc  [ftr]        │           at Command.<anonymous> (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/leadfoot/Command.js:42:36)
23:17:29    │ proc  [ftr]        │           at /var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/dojo/_debug/Promise.ts:393:16
23:17:29    │ proc  [ftr]        │           at run (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/dojo/_debug/Promise.ts:237:8)
23:17:29    │ proc  [ftr]        │           at /var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/dojo/_debug/nextTick.ts:44:4
23:17:29    │ proc  [ftr]        │           at _combinedTickCallback (internal/process/next_tick.js:131:7)
23:17:29    │ proc  [ftr]        │           at process._tickCallback (internal/process/next_tick.js:180:9)
23:17:29    │ proc  [ftr]        │           at Command.find (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/leadfoot/Command.js:23:10)
23:17:29    │ proc  [ftr]        │           at Command.prototype.(anonymous function) [as findByCssSelector] (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/leadfoot/lib/strategies.js:29:16)
23:17:29    │ proc  [ftr]        │           at _ensureElementWithTimeout (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/test/functional/services/find.js:71:29)
23:17:29    │ proc  [ftr]        │           at retry.try (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/test/functional/services/find.js:51:33)
23:17:29    │ proc  [ftr]        │           at tryCatcher (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/bluebird/js/main/util.js:26:23)
23:17:29    │ proc  [ftr]        │           at Function.Promise.attempt.Promise.try (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/bluebird/js/main/method.js:31:24)
23:17:29    │ proc  [ftr]        │           at attempt (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/test/common/services/retry.js:41:16)
23:17:29    │ proc  [ftr]        │           at tryCatcher (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/bluebird/js/main/util.js:26:23)
23:17:29    │ proc  [ftr]        │           at Promise._settlePromiseFromHandler (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/bluebird/js/main/promise.js:503:31)
23:17:29    │ proc  [ftr]        │           at Promise._settlePromiseAt (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/bluebird/js/main/promise.js:577:18)
23:17:29    │ proc  [ftr]        │           at Promise._settlePromises (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/bluebird/js/main/promise.js:693:14)
23:17:29    │ proc  [ftr]        │           at Async._drainQueue (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/bluebird/js/main/async.js:123:16)
23:17:29    │ proc  [ftr]        │           at Async._drainQueues (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/bluebird/js/main/async.js:133:10)
23:17:29    │ proc  [ftr]        │           at Immediate.Async.drainQueues [as _onImmediate] (/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/node_modules/bluebird/js/main/async.js:15:14)
23:17:29    │ proc  [ftr]        │           at runCallback (timers.js:810:20)
23:17:29    │ proc  [ftr]        │           at tryOnImmediate (timers.js:768:5)
23:17:29    │ proc  [ftr]        │ info  Taking screenshot "/var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/test/functional/screenshots/failure/visualize app visualize lab mode _after all_ hook.png"
23:17:30    │ proc  [ftr]        │ info  Current URL is: http://localhost:5620/app/kibana#/management/kibana/settings/?_g=()
23:17:30    │ proc  [ftr]        │ info  Saving page source to: /var/lib/jenkins/workspace/elastic+kibana+pull-request+multijob-selenium/kibana/test/functional/failure_debug/html/visualize app visualize lab mode _after all_ hook.html
23:17:30    │ proc  [ftr]      └- ✖ fail: "visualize app visualize lab mode "after all" hook"
23:17:30    │ proc  [ftr]      │        tryForTime timeout: Error: tryForTime timeout: [POST http://localhost:9515/session/c3170b5dd400702941b538f74970e2a7/element / {"using":"css selector","value":"[data-test-subj~=\"advancedSetting-resetField-visualize:enableLabs\"]"}] no such element: Unable to locate element: {"method":"css selector","selector":"[data-test-subj~="advancedSetting-resetField-visualize:enableLabs"]"}

@cjcenizal
Copy link
Contributor Author

Retest

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@cjcenizal
Copy link
Contributor Author

Retest

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@cjcenizal cjcenizal merged commit b328bd0 into elastic:master Jul 27, 2018
@cjcenizal cjcenizal deleted the test-navigate-to-settings branch July 27, 2018 02:07
cjcenizal added a commit to cjcenizal/kibana that referenced this pull request Jul 27, 2018
…ic#21245)

* Fail the consuming test if navigation to settings is unsuccessful.
* Add testSubjects.existOrFail helper.
cjcenizal added a commit that referenced this pull request Jul 27, 2018
… (#21321)

* Fail the consuming test if navigation to settings is unsuccessful.
* Add testSubjects.existOrFail helper.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore Feature:Visualizations Generic visualization features (in case no more specific feature label is available) Team:QA Team label for QA Team test v6.5.0 v7.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants