Adapt to newer webdriver api
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import { clickOn, sleep, writeText, expandTopic, moveToCenterOfElement } from '../util'
|
import { clickOn, sleep, writeText, expandTopic, moveToCenterOfElement } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function clearOldTopics(browser: Browser<void>) {
|
export async function clearOldTopics(browser: Browser) {
|
||||||
const topics = ['hello', 'test 123']
|
const topics = ['hello', 'test 123']
|
||||||
for (const topic of topics) {
|
for (const topic of topics) {
|
||||||
await expandTopic(topic, browser)
|
await expandTopic(topic, browser)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { clickOn, writeTextToInput } from '../util'
|
import { clickOn, writeTextToInput } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function connectTo(host: string, browser: Browser<void>) {
|
export async function connectTo(host: string, browser: Browser) {
|
||||||
await writeTextToInput('Host', host, browser)
|
await writeTextToInput('Host', host, browser)
|
||||||
await writeTextToInput('Username', 'thomas', browser, false)
|
await writeTextToInput('Username', 'thomas', browser, false)
|
||||||
await writeTextToInput('Password', 'bierbier', browser, false)
|
await writeTextToInput('Password', 'bierbier', browser, false)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { clickOn } from '../util'
|
import { clickOn } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function copyTopicToClipboard(browser: Browser<void>) {
|
export async function copyTopicToClipboard(browser: Browser) {
|
||||||
const copyButton = await browser.$('//p[contains(text(), "Topic")]/span')
|
const copyButton = await browser.$('//p[contains(text(), "Topic")]/span')
|
||||||
await clickOn(copyButton, browser, 1)
|
await clickOn(copyButton, browser, 1)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { clickOn, sleep, writeText, expandTopic } from '../util'
|
import { clickOn, sleep, writeText, expandTopic } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function copyValueToClipboard(browser: Browser<void>) {
|
export async function copyValueToClipboard(browser: Browser) {
|
||||||
const copyButton = await browser.$('//p[contains(text(), "Value")]/span')
|
const copyButton = await browser.$('//p[contains(text(), "Value")]/span')
|
||||||
await clickOn(copyButton, browser, 1)
|
await clickOn(copyButton, browser, 1)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { clickOn } from '../util'
|
import { clickOn } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function disconnect(browser: Browser<void>) {
|
export async function disconnect(browser: Browser) {
|
||||||
const disconnectButton = await browser.$('//button/span[contains(text(),"Disconnect")]')
|
const disconnectButton = await browser.$('//button/span[contains(text(),"Disconnect")]')
|
||||||
await clickOn(disconnectButton, browser)
|
await clickOn(disconnectButton, browser)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { clickOn, sleep, writeText, delteTextWithBackspaces, expandTopic, moveToCenterOfElement, showText } from '../util'
|
import { clickOn, sleep, writeText, delteTextWithBackspaces, expandTopic, moveToCenterOfElement, showText } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function publishTopic(browser: Browser<void>) {
|
export async function publishTopic(browser: Browser) {
|
||||||
await expandTopic('kitchen/lamp/state', browser)
|
await expandTopic('kitchen/lamp/state', browser)
|
||||||
const topicInput = await browser.$('//textarea[contains(text(),"kitchen/lamp/state")][2]')
|
const topicInput = await browser.$('//textarea[contains(text(),"kitchen/lamp/state")][2]')
|
||||||
await clickOn(topicInput, browser)
|
await clickOn(topicInput, browser)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { clickOn } from '../util'
|
import { clickOn } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function reconnect(browser: Browser<void>) {
|
export async function reconnect(browser: Browser) {
|
||||||
const disconnectButton = await browser.$('//button/span[contains(text(),"Disconnect")]')
|
const disconnectButton = await browser.$('//button/span[contains(text(),"Disconnect")]')
|
||||||
await clickOn(disconnectButton, browser)
|
await clickOn(disconnectButton, browser)
|
||||||
const connectButton = await browser.$('//button/span[contains(text(),"Connect")]')
|
const connectButton = await browser.$('//button/span[contains(text(),"Connect")]')
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import { clickOn, sleep, writeText, delteTextWithBackspaces, showText } from '../util'
|
import { clickOn, sleep, writeText, delteTextWithBackspaces, showText } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function searchTree(text: string, browser: Browser<void>) {
|
export async function searchTree(text: string, browser: Browser) {
|
||||||
const searchField = await browser.$('//input[contains(@placeholder, "Search")]')
|
const searchField = await browser.$('//input[contains(@placeholder, "Search")]')
|
||||||
await clickOn(searchField, browser, 1)
|
await clickOn(searchField, browser, 1)
|
||||||
await writeText(text, browser, 100)
|
await writeText(text, browser, 100)
|
||||||
await sleep(1500)
|
await sleep(1500)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function clearSearch(browser: Browser<void>) {
|
export async function clearSearch(browser: Browser) {
|
||||||
const searchField = await browser.$('//input[contains(@placeholder, "Search")]')
|
const searchField = await browser.$('//input[contains(@placeholder, "Search")]')
|
||||||
await clickOn(searchField, browser, 1)
|
await clickOn(searchField, browser, 1)
|
||||||
await delteTextWithBackspaces(searchField, browser, 100)
|
await delteTextWithBackspaces(searchField, browser, 100)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { clickOn, writeTextToInput, sleep } from '../util'
|
import { clickOn, writeTextToInput, sleep } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function showAdvancedConnectionSettings(browser: Browser<void>) {
|
export async function showAdvancedConnectionSettings(browser: Browser) {
|
||||||
const advancedSettingsButton = await browser.$('//button/span[contains(text(),"Advanced")]')
|
const advancedSettingsButton = await browser.$('//button/span[contains(text(),"Advanced")]')
|
||||||
const addButton = await browser.$('//button/span[contains(text(),"Add")]')
|
const addButton = await browser.$('//button/span[contains(text(),"Add")]')
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ export async function showAdvancedConnectionSettings(browser: Browser<void>) {
|
|||||||
await clickOn(connectButton, browser)
|
await clickOn(connectButton, browser)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function deleteFirstSubscribedTopic(browser: Browser<void>) {
|
async function deleteFirstSubscribedTopic(browser: Browser) {
|
||||||
const deleteButton = await browser.$('.advanced-connection-settings-topic-list button')
|
const deleteButton = await browser.$('.advanced-connection-settings-topic-list button')
|
||||||
await clickOn(deleteButton, browser)
|
await clickOn(deleteButton, browser)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import {
|
|||||||
sleep
|
sleep
|
||||||
} from '../util'
|
} from '../util'
|
||||||
|
|
||||||
export async function showJsonFormatting(browser: Browser<void>) {
|
export async function showJsonFormatting(browser: Browser) {
|
||||||
const editor = await browser.$('//*[contains(@class, "ace_editor")]')
|
const editor = await browser.$('//*[contains(@class, "ace_editor")]')
|
||||||
const formatJsonButton = await browser.$('#sidebar-publish-format-json')
|
const formatJsonButton = await browser.$('#sidebar-publish-format-json')
|
||||||
const payloadInput = await browser.$('//*[contains(@class, "ace_text-input")]')
|
const payloadInput = await browser.$('//*[contains(@class, "ace_text-input")]')
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
import { expandTopic, sleep } from '../util'
|
import { expandTopic, sleep } from '../util'
|
||||||
|
|
||||||
export async function showJsonPreview(browser: Browser<void>) {
|
export async function showJsonPreview(browser: Browser) {
|
||||||
await expandTopic('actuality/showcase', browser)
|
await expandTopic('actuality/showcase', browser)
|
||||||
await browser.saveScreenshot('screen3.png')
|
await browser.saveScreenshot('screen3.png')
|
||||||
await sleep(1000)
|
await sleep(1000)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { clickOn, sleep, writeText, expandTopic, moveToCenterOfElement, showText } from '../util'
|
import { clickOn, sleep, writeText, expandTopic, moveToCenterOfElement, showText } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function showMenu(browser: Browser<void>) {
|
export async function showMenu(browser: Browser) {
|
||||||
const menuButton = await browser.$('//button[contains(@aria-label, "Menu")]')
|
const menuButton = await browser.$('//button[contains(@aria-label, "Menu")]')
|
||||||
await clickOn(menuButton, browser)
|
await clickOn(menuButton, browser)
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { clickOn, sleep, writeText, expandTopic, clickOnHistory } from '../util'
|
import { clickOn, sleep, writeText, expandTopic, clickOnHistory } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function showNumericPlot(browser: Browser<void>) {
|
export async function showNumericPlot(browser: Browser) {
|
||||||
await expandTopic('livingroom/temperature', browser)
|
await expandTopic('livingroom/temperature', browser)
|
||||||
|
|
||||||
await clickOnHistory(browser)
|
await clickOnHistory(browser)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { clickOn, sleep, showText } from '../util'
|
|||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
// Expects a topic with at least two messages to be selected
|
// Expects a topic with at least two messages to be selected
|
||||||
export async function showOffDiffCapability(browser: Browser<void>) {
|
export async function showOffDiffCapability(browser: Browser) {
|
||||||
await showText('Compare messages', 2000, browser, 'top')
|
await showText('Compare messages', 2000, browser, 'top')
|
||||||
|
|
||||||
await showText('Show raw message', 2000, browser, 'bottom')
|
await showText('Show raw message', 2000, browser, 'bottom')
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { sleep, showKeys, showText } from '../util'
|
import { sleep, showKeys, showText } from '../util'
|
||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
|
|
||||||
export async function showZoomLevel(browser: Browser<void>) {
|
export async function showZoomLevel(browser: Browser) {
|
||||||
await showKeys('Zoom in', 2000, browser, 'top', ['Ctrl', '+'])
|
await showKeys('Zoom in', 2000, browser, 'top', ['Ctrl', '+'])
|
||||||
await sleep(2000)
|
await sleep(2000)
|
||||||
await showKeys('Zoom out', 2000, browser, 'middle', ['Ctrl', '-'])
|
await showKeys('Zoom out', 2000, browser, 'middle', ['Ctrl', '-'])
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Browser } from 'webdriverio'
|
import { Browser } from 'webdriverio'
|
||||||
import { clickOn } from './'
|
import { clickOn } from './'
|
||||||
|
|
||||||
export async function expandTopic(path: string, browser: Browser<void>) {
|
export async function expandTopic(path: string, browser: Browser) {
|
||||||
const originalTopics = path.split('/')
|
const originalTopics = path.split('/')
|
||||||
let topics = path.split('/')
|
let topics = path.split('/')
|
||||||
while (topics.length > 0 && !await topicMatches(topics, browser)) {
|
while (topics.length > 0 && !await topicMatches(topics, browser)) {
|
||||||
@@ -18,7 +18,7 @@ export async function expandTopic(path: string, browser: Browser<void>) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function topicMatches(topics: string[], browser: Browser<void>) {
|
async function topicMatches(topics: string[], browser: Browser) {
|
||||||
const result = await browser.$(topicSelector(topics))
|
const result = await browser.$(topicSelector(topics))
|
||||||
return result.isExisting()
|
return result.isExisting()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ export function sleep(ms: number, required = false) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function writeText(text: string, browser: Browser<void>, delay = 0) {
|
export async function writeText(text: string, browser: Browser, delay = 0) {
|
||||||
if (fast) {
|
if (fast) {
|
||||||
return browser.keys(text.split(''))
|
return browser.keys(text.split(''))
|
||||||
}
|
}
|
||||||
@@ -28,7 +28,7 @@ export async function writeText(text: string, browser: Browser<void>, delay = 0)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function delteTextWithBackspaces(element: Element<void>, browser: Browser<void>, delay = 0, count = 0) {
|
export async function delteTextWithBackspaces(element: Element, browser: Browser, delay = 0, count = 0) {
|
||||||
const length = count > 0 ? count : (await element.getValue()).length
|
const length = count > 0 ? count : (await element.getValue()).length
|
||||||
for (let i = 0; i < length; i += 1) {
|
for (let i = 0; i < length; i += 1) {
|
||||||
await browser.keys(['Backspace'])
|
await browser.keys(['Backspace'])
|
||||||
@@ -36,7 +36,7 @@ export async function delteTextWithBackspaces(element: Element<void>, browser: B
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function writeTextToInput(name: string, text: string, browser: Browser<void>, wait: boolean = true) {
|
export async function writeTextToInput(name: string, text: string, browser: Browser, wait: boolean = true) {
|
||||||
const input = await browser.$(`//label[contains(text(), "${name}")]/..//input`)
|
const input = await browser.$(`//label[contains(text(), "${name}")]/..//input`)
|
||||||
await clickOn(input, browser, 1)
|
await clickOn(input, browser, 1)
|
||||||
wait && await sleep(500)
|
wait && await sleep(500)
|
||||||
@@ -45,7 +45,7 @@ export async function writeTextToInput(name: string, text: string, browser: Brow
|
|||||||
await writeText(text, browser)
|
await writeText(text, browser)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function moveToCenterOfElement(element: Element<void>, browser: Browser<void>) {
|
export async function moveToCenterOfElement(element: Element, browser: Browser) {
|
||||||
const { x, y } = await element.getLocation()
|
const { x, y } = await element.getLocation()
|
||||||
const { width, height } = await element.getSize()
|
const { width, height } = await element.getSize()
|
||||||
|
|
||||||
@@ -62,12 +62,12 @@ export async function moveToCenterOfElement(element: Element<void>, browser: Bro
|
|||||||
await element.moveTo()
|
await element.moveTo()
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function clickOnHistory(browser: Browser<void>) {
|
export async function clickOnHistory(browser: Browser) {
|
||||||
const messageHistory = await browser.$('//span/*[contains(text(), "History")]')
|
const messageHistory = await browser.$('//span/*[contains(text(), "History")]')
|
||||||
await clickOn(messageHistory, browser)
|
await clickOn(messageHistory, browser)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function clickOn(element: Element<void>, browser: Browser<void>, clicks = 1) {
|
export async function clickOn(element: Element, browser: Browser, clicks = 1) {
|
||||||
await moveToCenterOfElement(element, browser)
|
await moveToCenterOfElement(element, browser)
|
||||||
for (let i = 0; i < clicks; i += 1) {
|
for (let i = 0; i < clicks; i += 1) {
|
||||||
await element.click()
|
await element.click()
|
||||||
@@ -75,13 +75,13 @@ export async function clickOn(element: Element<void>, browser: Browser<void>, cl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function createFakeMousePointer(browser: Browser<void>) {
|
export async function createFakeMousePointer(browser: Browser) {
|
||||||
const js = 'window.demo.enableMouse();'
|
const js = 'window.demo.enableMouse();'
|
||||||
|
|
||||||
await browser.execute(js)
|
await browser.execute(js)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function showText(text: string, duration: number = 0, browser: Browser<void>, location: 'top' | 'bottom' | 'middle' = 'bottom', keys = []) {
|
export async function showText(text: string, duration: number = 0, browser: Browser, location: 'top' | 'bottom' | 'middle' = 'bottom', keys = []) {
|
||||||
const js = `window.demo.showMessage('${text}', '${location}', ${duration});`
|
const js = `window.demo.showMessage('${text}', '${location}', ${duration});`
|
||||||
|
|
||||||
await browser.execute(js)
|
await browser.execute(js)
|
||||||
@@ -89,7 +89,7 @@ export async function showText(text: string, duration: number = 0, browser: Brow
|
|||||||
|
|
||||||
type HeapDump = any
|
type HeapDump = any
|
||||||
|
|
||||||
export async function getHeapDump(browser: Browser<void>): Promise<HeapDump> {
|
export async function getHeapDump(browser: Browser): Promise<HeapDump> {
|
||||||
const filename = 'heapdump.json'
|
const filename = 'heapdump.json'
|
||||||
const js = `window.demo.writeHeapdump('${filename}');`
|
const js = `window.demo.writeHeapdump('${filename}');`
|
||||||
await browser.execute(js)
|
await browser.execute(js)
|
||||||
@@ -111,13 +111,13 @@ export async function countInstancesOf(heapDump: HeapDump, className: ClassNameM
|
|||||||
.filter((s: string) => s === className).length
|
.filter((s: string) => s === className).length
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function showKeys(text: string, duration: number = 0, browser: Browser<void>, location: 'top' | 'bottom' | 'middle' = 'bottom', keys: string[] = []) {
|
export async function showKeys(text: string, duration: number = 0, browser: Browser, location: 'top' | 'bottom' | 'middle' = 'bottom', keys: string[] = []) {
|
||||||
const js = `window.demo.showMessage('${text}', '${location}', ${duration}, ${JSON.stringify(keys)});`
|
const js = `window.demo.showMessage('${text}', '${location}', ${duration}, ${JSON.stringify(keys)});`
|
||||||
|
|
||||||
await browser.execute(js)
|
await browser.execute(js)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function hideText(browser: Browser<void>) {
|
export async function hideText(browser: Browser) {
|
||||||
const js = 'window.demo.hideMessage();'
|
const js = 'window.demo.hideMessage();'
|
||||||
await browser.execute(js)
|
await browser.execute(js)
|
||||||
await sleep(600)
|
await sleep(600)
|
||||||
|
|||||||
Reference in New Issue
Block a user