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
相关产品推荐
相关产品推荐

