You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cucumber Ruby/Selenium环境下无法写入剪贴板的问题求助

Cucumber Ruby/Selenium环境下无法写入剪贴板的问题求助

我写了一段用navigator.clipboard.writeText写入剪贴板的JS代码,在各种浏览器里运行都没问题,但用Cucumber做自动化测试的时候,剪贴板里总是空空如也,测试代码是这样的:

Then("the embed code should be copied to my clipboard") do
  page.driver.browser.execute_cdp("Browser.grantPermissions", origin: page.server_url, permissions: %w[clipboardReadWrite])
  clip_text = page.evaluate_async_script("navigator.clipboard.readText().then(arguments[0])")
  expect(clip_text).to eq(@content_block.document.embed_code)
end

而且Chrome的JS控制台还抛出了这个错误:

13743:4 Uncaught TypeError: Failed to execute 'writeText' on 'Clipboard': Illegal invocation

我本来猜测是测试没在安全上下文里运行,但我的测试是在localhost上跑的,按说localhost属于安全上下文才对,实在搞不懂问题出在哪。

我也尝试过几种解决办法,比如用下面的代码手动设置剪贴板读写权限:

page.driver.browser.add_permission("clipboard-write", "granted")
page.driver.browser.add_permission("clipboard-read", "granted")

但试了之后还是会报同样的错误,有没有懂行的朋友能给我支个招?

备注:内容来源于stack exchange,提问作者Pezholio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 08:54:30