#typescript #intern #leadfoot
#typescript #стажер #leadfoot
Вопрос:
По сути, я пытаюсь изменить размер экрана на полную высоту и ширину, используя значения, возвращаемые функцией execute . Я изо всех сил пытаюсь понять, как передать значения из функции execute в мою функцию изменения размера, и надеялся, что кто-нибудь сможет взглянуть на мой код и показать мне, где я ошибаюсь? когда я проверяю выполнение команды saucelabs, я не вижу, чтобы команда изменения размера запускалась перед скриншотом. Поэтому я не уверен, где именно происходит разбивка (неправильно ли передается размер или неверно время. Когда я жестко кодирую размер вместо того, чтобы пытаться получить его из execute, он работает отлично. Спасибо!!
registerSuite('homepage', {
'homepage'() {
return this.remote.get('myurl')
.setWindowPosition(0,0)
.maximizeWindow()
.execute(() => [
document.documentElement.scrollWidth,
document.documentElement.scrollHeight
])
.then(([width, height]) => { return helpers.resizeWindow(width, height) })
.takeScreenshot()
.then(assertVisuals(this, { missingBaseline: 'snapshot', regenerateBaselines: true }) );
}
});
Ответ №1:
На самом деле я смог решить эту проблему, выполнив 2 вещи. Я удалил helper.resizeWindow и использовал обычную command.resizeWindow , и вместо того, чтобы встраивать его в функцию обратного вызова, я просто поместил его туда без фигурных скобок и без оператора return . Я не уверен, почему этот синтаксис работает, а другой — нет.
registerSuite('homepage', {
'homepage'() {
return this.remote.get('mypage')
.setWindowPosition(0,0)
.maximizeWindow()
.execute(() => [document.documentElement.scrollWidth, document.documentElement.scrollHeight])
.then(([width, height]) => this.remote.setWindowSize(width, height))
.takeScreenshot()
.then(
assertVisuals(this, {
missingBaseline: 'snapshot',
regenerateBaselines: true
})
);
}
});