【发布时间】:2020-05-07 05:46:44
【问题描述】:
如何在 cypress 中获取“剪贴板”内容。我的 Web 应用程序中有一个按钮,单击按钮系统将执行“复制到剪贴板”并显示一条消息。下面是复制到剪贴板的 url 内容示例(此 url 内容与网站 url 不同)
我仔细检查了那个按钮标签中没有href 属性。所以我使用了一个名为 clipboardy 的插件,并添加了plugins/index.js 文件
const clipboardy = require('clipboardy');
module.exports = ( on ) => {
on('task', {
getClipboard () {
return clipboardy.readSync();
}
});
};
在我的测试中,我使用 cy.task() 来获取剪贴板内容,但这并没有打印实际的 url 内容
cy.get('td').find('div').find('span').find('button').find('i').eq(0).click().then(()=>{
cy.task('getClipboard').then((data)=>{
console.log("Helloooo:"+data);
})
})
<td class="sc-hgRTRy duUdhJ">
<div>
<span class="sc-bYwvMP jTmLTC">
<span class="sc-jzJRlG iVpVVy">
<span role="button" aria-expanded="true" aria-haspopup="true" aria-owns="5aa03785-1370-455e-a838-4154f7481a7b">
<button class="sc-feJyhm cJOKrG">
<i class="icon fas fa-link sc-htpNat cQABgO" aria-hidden="true" data-component-type="icon">
</i>
</button>
</span>
</span>
</span>
</div>
</td>
【问题讨论】:
-
我也试过
getClipboard () { return clipboardy.read(); } -
@MakwanaPrahlad 给出的测试(使用输入)有效,这表明您的按钮
.click()没有触发事件。这可能是“本地事件”问题,但也有可能点击不在正确的元素上。你能显示有td的部分html吗? -
了解运行测试时是否出现“复制到剪贴板”消息也会很有帮助。
-
是的,它在运行文本时显示消息。我完全同意@MakwanaPrahlad 测试,但我的情况不同
-
我不明白,你能把它贴在问题上吗?通常
.then()的参数是一个jquery对象,所以你可能不能"Hello:" + data,而可能是"Hello:" + data[0]。
标签: javascript cypress