Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Puppeter获取自定义元素,然后执行单击操作_Javascript_Puppeteer_Jest Puppeteer - Fatal编程技术网

Javascript 使用Puppeter获取自定义元素,然后执行单击操作

Javascript 使用Puppeter获取自定义元素,然后执行单击操作,javascript,puppeteer,jest-puppeteer,Javascript,Puppeteer,Jest Puppeteer,我已经创建了一个名为data testId的自定义属性,我正在尝试使用puppeter进行访问,然后执行单击操作,但由于某些原因,我无法获取此元素,并且面临错误。 我尝试了以下两种选择: const element = await page.$('[data-testId="testid-button-refresh"]'); await page.click(element, { clickCount: 1 }); 这是: const refreshButton = aw

我已经创建了一个名为data testId的自定义属性,我正在尝试使用puppeter进行访问,然后执行单击操作,但由于某些原因,我无法获取此元素,并且面临错误。 我尝试了以下两种选择:

const element = await page.$('[data-testId="testid-button-refresh"]');
await page.click(element, { clickCount: 1 });
这是:

const refreshButton = await page.evaluateHandle(() => {
return document.querySelector('[data-testId=testid-button-refresh]').value;
});
await page.click(element, { clickCount: 1 });
在这两个问题上,我都遇到了以下错误:


我做错了什么?这个错误是什么意思?

使用
元素
您已经创建了一个可以用而不是用
页面单击的页面。单击

这应该起作用:

const element=wait page.$(“[data testId=“testId button refresh”]”)/这是一个ElementHandle
等待元素。单击({clickCount:1})
或者您仍然可以使用,但要使单击保持在相同的上下文中,应使用选择器,而不是ElementHandle作为第一个参数:

等待页面。单击('[data testId=“testId button refresh”]',{clickCount:1})

你说得对,这是我的问题。我一直在用页面点击,而不是用元素——可能错过了。
JSHandles can be evaluated only in the context they were created!