From 65ca1b33eea95a51ee2e461e5d9a648372f86685 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Fri, 29 Mar 2019 12:27:48 +0100 Subject: [PATCH] fix creating a room --- src/usecases/create-room.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/usecases/create-room.js b/src/usecases/create-room.js index 7d3488bfbe..79f1848198 100644 --- a/src/usecases/create-room.js +++ b/src/usecases/create-room.js @@ -18,8 +18,16 @@ const assert = require('assert'); module.exports = async function createRoom(session, roomName) { session.log.step(`creates room "${roomName}"`); - //TODO: brittle selector - const createRoomButton = await session.waitAndQuery('.mx_RoleButton[aria-label="Create new room"]'); + const roomListHeaders = await session.queryAll('.mx_RoomSubList_labelContainer'); + const roomListHeaderLabels = await Promise.all(roomListHeaders.map(h => session.innerText(h))); + const roomsIndex = roomListHeaderLabels.findIndex(l => l.toLowerCase().includes("rooms")); + if (roomsIndex === -1) { + throw new Error("could not find room list section that contains rooms in header"); + } + const roomsHeader = roomListHeaders[roomsIndex]; + const addRoomButton = await roomsHeader.$(".mx_RoomSubList_addRoom"); + await addRoomButton.click(); + const createRoomButton = await session.waitAndQuery('.mx_RoomDirectory_createRoom'); await createRoomButton.click(); const roomNameInput = await session.waitAndQuery('.mx_CreateRoomDialog_input'); @@ -30,4 +38,4 @@ module.exports = async function createRoom(session, roomName) { await session.waitAndQuery('.mx_MessageComposer'); session.log.done(); -} \ No newline at end of file +}