replace deprecated spectron with playwright

This commit is contained in:
Björn Dalfors
2024-04-05 14:35:18 +02:00
parent 4626df0bf7
commit 6e5e2e0dd7
22 changed files with 396 additions and 1242 deletions

View File

@@ -1,7 +1,7 @@
import { Browser, Element } from 'webdriverio'
import { Page } from 'playwright'
import { moveToCenterOfElement, clickOn, clickOnHistory, expandTopic, sleep, writeText } from '../util'
export async function showNumericPlot(browser: Browser<'async'>) {
export async function showNumericPlot(browser: Page) {
await expandTopic('kitchen/coffee_maker', browser)
let heater = await valuePreviewGuttersShowChartIcon('heater', browser)
await moveToCenterOfElement(heater, browser)
@@ -30,7 +30,7 @@ export async function showNumericPlot(browser: Browser<'async'>) {
await clickAway('temperature', browser)
await sleep(2500)
await browser.saveScreenshot('screen_chart_panel.png')
await browser.screenshot({ path: 'screen_chart_panel.png' })
await removeChart('heater', browser)
await sleep(750)
@@ -42,34 +42,38 @@ export async function showNumericPlot(browser: Browser<'async'>) {
await clickOnHistory(browser)
}
async function valuePreviewGuttersShowChartIcon(name: string, browser: Browser<'async'>) {
async function valuePreviewGuttersShowChartIcon(name: string, browser: Page) {
for (let retries = 0; retries < 2; retries += 1) {
try {
return await browser.$(`//*[contains(@data-test-type, "ShowChart")][contains(@data-test, "${name}")]`)
return await browser.locator(`//*[contains(@data-test-type, "ShowChart")][contains(@data-test, "${name}")]`)
} catch {
// ignore
}
}
return browser.$(`//*[contains(@data-test-type, "ShowChart")][contains(@data-test, "${name}")]`)
return browser.locator(`//*[contains(@data-test-type, "ShowChart")][contains(@data-test, "${name}")]`)
}
async function chartSettings(name: string, browser: Browser<'async'>) {
const settings = await browser.$(`//*[contains(@data-test-type, "ChartSettings")][contains(@data-test, "${name}")]`)
return clickOn(settings, browser)
async function chartSettings(name: string, browser: Page) {
const settings = await browser.locator(
`//*[contains(@data-test-type, "ChartSettings")][contains(@data-test, "${name}")]`
)
return clickOn(settings)
}
async function clickAway(name: string, browser: Browser<'async'>) {
const settings = await browser.$(`//*[contains(@data-test-type, "ChartPaper")][contains(@data-test, "${name}")]`)
async function clickAway(name: string, browser: Page) {
const settings = await browser.locator(
`//*[contains(@data-test-type, "ChartPaper")][contains(@data-test, "${name}")]`
)
await moveToCenterOfElement(settings, browser)
await browser.keys(['Escape'])
await settings.press('Escape')
}
async function removeChart(name: string, browser: Browser<'async'>) {
const remove = await browser.$(`//*[contains(@data-test-type, "RemoveChart")][contains(@data-test, "${name}")]`)
return clickOn(remove, browser)
async function removeChart(name: string, browser: Page) {
const remove = await browser.locator(`//*[contains(@data-test-type, "RemoveChart")][contains(@data-test, "${name}")]`)
return clickOn(remove)
}
async function clickOnMenuPoint(name: string, browser: Browser<'async'>) {
const item = await browser.$(`//li/span[contains(text(), "${name}")]`)
return clickOn(item, browser)
async function clickOnMenuPoint(name: string, browser: Page) {
const item = await browser.locator(`//li/span[contains(text(), "${name}")]`)
return clickOn(item)
}