Кнопка onClick, используя .jade с функцией JS - PullRequest
1 голос
/ 24 марта 2020

Я пытаюсь использовать функцию для кнопки onClick в моем .jade файле. Функция находится в файле javascript. Я хочу использовать функцию скриншотов при каждом нажатии кнопки. У меня вопрос, правильно ли я импортирую файл. js? Кроме того, правильно ли я вызываю функцию?

При запуске я получаю сообщение об ошибке:

Invalid or unexpected token on the line button(onClick = # 
{screenshots(client)}) GO

Index.jade

extends layout

block content
  h1= title
  script (src='../scripts/screenshot.js')
  p Welcome to #{title}
  button(onClick = #{screenshots(client)}) GO
  div.Windows
    img(src="http://localhost:3000/images/myscreenshot2.png", class="image", width="20%", height="20%")  
    object(data="http://localhost:3000/test.txt",class = "texttest",width='50%', height='615px' display: block;)

снимок экрана. js

async function screenshots(client) {
    await client.takeScreenshot().then(
client.saveScreenshot("./public/images/myscreenshot2.png")
);
}


async function connection () {

    const wdio = require("webdriverio");
    const assert = require("assert");

const opts = {
    port: 4723,
    capabilities: {
        platformName: "Android",
        platformVersion: '8.1',
        deviceName: "emulator-5554",
        app: "C:\\Users\\user1\\Downloads\\test.apk",
        automationName: "UiAutomator2"
    }
};
    const fs = require('fs');   
    const client = await wdio.remote(opts);

1 Ответ

2 голосов
/ 24 марта 2020

Ваша проблема возникает из-за смешивания серверного мопса / нефрита и клиентской стороны JavaScript.

Давайте сосредоточимся на коде вашей кнопки:

button(onClick = #{screenshots(client)}) GO

#{} является Инструкция pug для вставки значения переменной в это пространство. В то время, когда кнопка нажата, вы просто хотите, чтобы она вызывала локальный скрипт, и для этого не требуется pug / jade:

button(onClick= "screenshots(client)") GO

Код ошибки, который вы получаете, связан с попыткой вызвать функцию, в которой pug / jade ожидает выражения, которое он может преобразовать в строку.

Я не могу быть уверен, поскольку не знаю, как настроена ваша файловая система, но вам, вероятно, нужно сослаться на скрипт, используя абсолютный путь:

script (src='/scripts/screenshot.js')
...