Использование 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?