Typescript 从Puppeter中的函数调用时,单击使用Xpath不起作用

Typescript 从Puppeter中的函数调用时,单击使用Xpath不起作用,typescript,puppeteer,jest-puppeteer,Typescript,Puppeteer,Jest Puppeteer,尝试使用$x单击元素,但抛出错误。 尝试了不同的方法,但没有运气,有人能告诉我下面的代码或密码有什么错误吗 使用xpath单击的任何其他方式 Error: Protocol error (Runtime.callFunctionOn): Target closed. 下面是代码 //commonfunction.ts //问题1.ts 在测试中尝试了$$eval单击正在工作,但当我将其放入函数中时,它不工作,是否与函数调用有关 const CommFun = require('./commo

尝试使用$x单击元素,但抛出错误。 尝试了不同的方法,但没有运气,有人能告诉我下面的代码或密码有什么错误吗 使用xpath单击的任何其他方式

 Error: Protocol error (Runtime.callFunctionOn): Target closed.
下面是代码

//commonfunction.ts

//问题1.ts

在测试中尝试了$$eval单击正在工作,但当我将其放入函数中时,它不工作,是否与函数调用有关

const CommFun = require('./commonfunction');
test('Verify "question"',async() => {
await page.$$eval('button[title=\'Edit\']', elements => elements[1].click());
},30000);

正如我在上面的代码中看到的,您在变量名
const QuestionLableXpath
中输入了一个错误。然后您使用了正确的名称
QuestionLabelXpath
,因此它们不匹配。尝试修复名称,看看结果如何。

尝试在函数调用中添加wait,如下所示

const CommFun = require('./commonfunction');
    test('Verify "question"',async() => {
    await CommFun.ToggleButton("question","//div[@role=\'tabpanel\']/div/div/div/div/div")
    },30000);

您是否在代码末尾添加了
wait browser.close()
wait page.close()
@eDiManto,即使在更改浏览器之后也是如此(async()=>{await browser.close();});仍然得到同样的问题我认为你应该提供比上面一节更详细的代码。还尝试单击
wait elementHandle.evaluate(node=>node.click())中的元素
@EdiImanto,我已更新代码以匹配场景,并在测试和函数中尝试了$$eval。在测试中有效,但在代码运行时无效。感谢您指出,这是我在创建此问题时的打字错误,现已更正。在实际测试中,我将此作为参数传递给函数。代码在此点击操作失败。如此简单但有效,我的代码现在工作了。谢谢我将改变这个问题,这样其他人也可以知道我的荣幸:D。
const CommFun = require('./commonfunction');
test('Verify "question"',async() => {
await page.$$eval('button[title=\'Edit\']', elements => elements[1].click());
},30000);
const CommFun = require('./commonfunction');
    test('Verify "question"',async() => {
    await CommFun.ToggleButton("question","//div[@role=\'tabpanel\']/div/div/div/div/div")
    },30000);