diff --git a/src/session.js b/src/session.js index 8e85509b82..f91bce5a46 100644 --- a/src/session.js +++ b/src/session.js @@ -108,6 +108,9 @@ module.exports = class RiotSession { async replaceInputText(input, text) { // click 3 times to select all text await input.click({clickCount: 3}); + // waiting here solves not having selected all the text by the 3x click above, + // presumably because of the Field label animation. + await this.delay(300); // then remove it with backspace await input.press('Backspace'); // and type the new text diff --git a/src/usecases/timeline.js b/src/usecases/timeline.js index 580d88ee6a..1770e0df9f 100644 --- a/src/usecases/timeline.js +++ b/src/usecases/timeline.js @@ -20,14 +20,14 @@ module.exports.scrollToTimelineTop = async function(session) { session.log.step(`scrolls to the top of the timeline`); await session.page.evaluate(() => { return Promise.resolve().then(async () => { - const timelineScrollView = document.querySelector(".mx_RoomView_timeline .mx_ScrollPanel"); let timedOut = false; let timeoutHandle = null; // set scrollTop to 0 in a loop and check every 50ms // if content became available (scrollTop not being 0 anymore), // assume everything is loaded after 3s do { - if (timelineScrollView.scrollTop !== 0) { + const timelineScrollView = document.querySelector(".mx_RoomView_timeline .mx_ScrollPanel"); + if (timelineScrollView && timelineScrollView.scrollTop !== 0) { if (timeoutHandle) { clearTimeout(timeoutHandle); }