Очистить кэш браузера Chrome с помощью Nightwatch - PullRequest
0 голосов
/ 20 февраля 2019

Использование Nightwatch Я пытаюсь очистить кэш браузера Chrome, что означает, что я должен нажать кнопку «Подтвердить» на странице настроек и, следовательно, дождаться его появления.(chrome: // settings / clearBrowserData)

Поскольку в Chrome используются теневые корни, это не так просто, как выбрать элемент с помощью идентификатора.

Еще несколько дней назад следующееработал просто отлично.

client.init('chrome://settings/clearBrowserData')
  .waitForElementPresent('* /deep/ #clearBrowsingDataConfirm', 20000)
  .moveToElement('* /deep/ #clearBrowsingDataConfirm', 5, 5)
  .mouseButtonClick(0)

Я полагаю, что из-за автоматического обновления Chrome это больше не работает локально, тогда как на наших Jenkins, где у нас установлена ​​фиксированная версия Chrome, это все еще работает.

Вопрос сейчас в том, есть ли альтернатива этому.Кажется, у CSS нет альтернативы / deep / selector, поэтому я подумал, что XPath может быть решением, но либо я попробовал его неправильно, либо его просто нет.

Другой возможностью может быть как-топерейдите вниз по теневому корню дерева по теневому корню, точно так же, как построенный запрос Chrome при копировании JS-Path конкретного элемента:

document.querySelector('body > settings-ui').shadowRoot.querySelector('#main').shadowRoot.querySelector('settings-basic-page').shadowRoot.querySelector('#advancedPage > settings-section:nth-child(1) > settings-privacy-page').shadowRoot.querySelector('settings-clear-browsing-data-dialog').shadowRoot.querySelector('#clearBrowsingDataConfirm')

К сожалению, я еще недостаточно хорошо знаю Nightwatch для адаптацииэто для Nightwatch.

У кого-нибудь есть идеи, как добиться очистки кэша браузера с помощью Nightwatch?

...