我希望能够在终端中运行我的测试,但由于 Cypress 使用 Electron 作为默认浏览器,我所有的测试都失败了,我希望它使用 Chrome,但不必在命令行中指定它。
我知道我可以使用命令npx cypress run --browser chrome告诉 Cypress 改用 Chrome。但是,它会打开浏览器并在命令行中运行它。
理想情况下,就只需要我跑npx cypress run,这将只在命令行中使用Chrome运行。
有没有办法将默认浏览器设置为 Chrome 而不是 Electron,这样我就不需要指定要使用的浏览器?
是否有什么要添加到package.json文件中以将默认浏览器设置为 Chrome 或在某处注入一行?我检查了文档,除了--browser命令之外我真的找不到任何东西。
这是他们 github 上关于无头 chrome 的未解决问题的链接,以及更改默认设置的链接 cypress run
支持 chrome headless 并更改 cypress run 的默认值
对不起,糟糕的涂鸦......我在保密协议下,所以不得不回去刮掉我项目的所有路径名以及我的姓氏。
我目前正在使用Chrome 74运行,并尝试使用赛普拉斯在我的应用中测试样式指南。当我加载赛普拉斯时,它将引发以下错误:
SecurityError: Blocked a frame with origin "http://localhost:3000" from accessing a cross-origin frame.
如果有解决方案,请告诉我!
我试图跟着这样做:https : //github.com/cypress-io/cypress/issues/1951
但是对我来说,没有任何改变/起作用。:(
我的代码如下所示: cypress/plugins/index.js
module.exports = (on, config) => {
on('before:browser:launch', (browser = {}, args) => {
// browser will look something like this
// {
// name: 'chrome',
// displayName: 'Chrome',
// version: '63.0.3239.108',
// path: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
// majorVersion: '63'
// }
if (browser.name === 'chrome') {
args.push('--disable-site-isolation-trials');
return args
}
if (browser.name === 'electron') {
args['fullscreen'] = true …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试在赛普拉斯测试时找到鼠标的位置。我正在尝试使用 WebGL 模型,因为我无法单独抓取这些模型并移动它们,所以我正在考虑使用页面坐标/鼠标位置,以便它足够接近。
我在 Cypress 的 github 上发现了一个关于此问题的已关闭问题,但它无法安装,因此如果你们中有人知道为什么它会抛出附加错误,或者有更简单的方法来找出位置,请告诉我!我们将不胜感激。
(抱歉,钢笔标记不好;试图写下我的姓氏)
我运行了已关闭问题中给出的代码:
npm i -D cypress-mouse-position
然后将它们添加到两个文件中:
cypress/plugins/index.js
module.exports = (on, config) => {
# ...
initCypressMousePositionPlugin(on);
# ...
}
Run Code Online (Sandbox Code Playgroud)
cypress/support/index.js
import 'cypress-mouse-position/commands';
Run Code Online (Sandbox Code Playgroud)