我在用柏树。没有问题。所有测试运行正常。但是,我对如何将结果记录为视频以及如何定位包含视频的文件夹感到困惑
我试图根据文档找到cypress/video文件夹,但没有成功。我甚至尝试将默认位置更改为C驱动器上的文件夹,但该文件夹中没有填充视频
启动录制是否还需要其他步骤?只有在从命令行或无头模式运行时,Cypress才会开始录制视频。运行cypress测试后,您可以看到在cypress根文件夹下创建了一个video文件夹
假设您在下面的路径中有整个cypress项目,并且在integration
我有一个场景,只有鼠标点击才能工作,我只能用鼠标点击。click方法实际上在那里不起作用,甚至我也尝试使用{force:true}所有东西。有没有办法在cypress中模拟鼠标的动作 你能给我们看一下你的代码和HTML(你试图点击的元素)吗?当然,我试了很多次,但是元素实际上是隐藏的,甚至是强制的:true它可以点击,但是选择器值没有任何改变。Im自动化UI日历组件这里是执行屏幕截图。
我有这个网址:
并希望存储这些值:
id=h1c7cafc-5457-4564-af9d-2599c6a37dde
哈希=7EPbMqFFQu8T5R3AQr1GCw
在以后的测试中使用
如何从URL中提取这些值?我用的是柏树。谢谢。这很容易做到。请按照以下步骤操作,就这样。您可以将下面的代码片段放在spec文件的挂钩之前,并可以在任何地方访问它们
cy.location().then(fullUrl => {
let pathName = fullUrl.pathname
我想检查输入元素的有效性。我可以检查输入的电子邮件格式是否错误或有效。
像这样
cy.get('#email_signup').type(validateEmail())
var email = "";
var possible = "abcd@.gh";
for (var i = 0; i < 10; i++)
email += possible.charA
当无头运行但通过时,如何调试失败的测试
当使用打开的浏览器运行时
以下是在未打开浏览器的情况下运行测试时遇到的错误:
AssertionError: Timed out retrying: Expected to find content: 'Logout' within the element: [ <a.navbar-item>, 2 more... ] but never did.
AssertionError:超时重试:应在元素中找到内容:“Logout”:[我建议您在测试
我已经安装了Cypress 5.0,并拥有所有浏览器-Chrome、Edge和FF。当我跑的时候
> npx cypress open
无法看到右上角的所有浏览器。只有电子在显示
我试过了
> npx cypress open --browser chrome
我得到以下错误
Can't run because you've entered an invalid browser name.
标签: Cypress
e2e-testingkeyboard-events
使用时,如何模拟键盘导航时按空格键
我在下面试过了,但不起作用
cy.get('#a-select')
.trigger('keydown', {
eventConstructor: 'KeyboardEvent',
keyCode: 32,
which: 32,
shiftKey: false,
ctrlKey: false,
})
.type('{downarrow}');
我还尝试了一种在输入中使用keyCode 65的变体,但这也不起
我正在使用Cypress对web项目进行测试。
您知道在vps上部署cypress测试的步骤吗
多谢各位
我有以下规格:
context('Contact update', () => {
it.only('Can update contact', () => {
const address = 'new address 123'
const cardId = 'c2card-38AF429999C93B5DC844D86381734E62'
cy.viewport('macbook-15')
cy.authVisit('/contact/list')
假设我正在测试一个包含10个页面的站点。在第10页,也就是最后一页,这是付款的地方,之后流程结束
我想在第10页上运行多个测试;visa支付、万事达卡支付、美国运通支付等
现在,我可以编写一个跨越整个流程的测试,从而获得签证付款。然后,我可以复制整个测试,调整万事达卡支付等。这显然是一种实践
在测试第10页(共10页)时,如何将第1页到第9页定义为先决条件,从而减少代码重复?您可以将测试用例排除在迭代一组配置的函数之外。您还可以使用it(或description(并以编程方式构建测试。使用这种方
我试图使用Cypress检查列表是否包含2个特定条目
我试过:
cy.get('ul.messages_list')
.children()
.contains('text')
.and('contain', 'emailAddress)
.should('have.length', 2)
问题是,一旦我使用.contains(),它就位于单个元素中,我无法检查它们是否有多个。我也遇到了同样的问题。
当我发出命令时:npx-cypress-open
给出以下错误:
Cypress cannot run because this binary file does not have executable permissions here:
/Users/gianmarx/Library/Caches/Cypress/5.4.0/Cypress.app/Contents/MacOS/Cypress
Reasons this may happen:
- node was installed a
我在带有搜索输入的页面上进行了一些测试
除了第一个测试外,所有的测试基本上都是相同的:type命令-它会改变
在这种情况下,有没有办法避免每次测试中出现重复的代码
it('Search test1', () => {
searchedString = '0987416572';
cy.get('input[data-test="Search"]').type(searchedString); //same for all test
cy.get('span[data
如何在Cypress中获取元素而不声明它存在
cy.get('.something')
有时我的元素可能不在那里,我不希望它通过测试
我应该使用另一个命令吗?您可能需要在Cypress中检查文档的这一部分
您可以使用cy.$$(“选择器”)同步查询元素(jquery)
如果希望在执行cypress命令后发生这种情况,则需要一个。然后:
cy.visit('/'))
cy.get('element-one')。然后(()=>{
常数$el2=cy.$$('element-two')
如果($el2
柏树说:
cy.get('[data-cy="my-checkbox"]')
.click()
.should('be.checked')
我在其他地方也看到:
cy.get('[data-cy="my-checkbox"]')
.click()
.should('have.attr', 'checked')
尽管上面的测试实际上是'not.have.attr',这可能是一个较弱的测试,因为这可能意味着任何事情!它在我的测试中不起作用
使用quasar我无法使用“check(
如图所示,它显示绿色箭头,但测试失败。我需要单击测试以查看结果:
未单击测试,似乎测试已通过:
我希望测试显示为红色或红色箭头标记您可以使用cy.should。现在,当断言失败时,测试将失败
cy.should(() => {
expect(result).to.equal(true)
});
找到答案:必须在index.js(在cypress的支持文件夹中)中对其进行注释(“fail”,(err,runnable)=>{return false;})
请看这张图片。想知道我怎样才能用柏树做这个吗
您可以使用类似的方法,具体取决于您想要的是什么:
cy.get('table')
.find('tbody tr')
.then(trs => {
const content = [];
Cypress.$(trs).each((_, tr) => {
const row = [];
const tds = Cypress.$(tr).find('td');
Cypress.$(
是否有任何方法或方法可以获取标记的“值”
我有一个场景,需要获取标记的值,并将其存储在变量中,因为该值是动态的,每次执行时都会发生变化
我不能像这样硬编码该值,因为它每次都在变化:
cy.get(' ').select('b5c12d3-2085-4ed8-bd57-8a93f6ae1e64')
因此,在得到该值后,我想做如下操作:
cy.get(' ').select(value)
通过使用文本值,它不会选择
cy.get(“”)。选择('related new)…它不工作您可以使用:cy
我有脚本选择2按钮,第一个是,第二个否。
然后单击保存按钮并重新加载页面。
我想在加载后断言,页面选择与加载前的操作相同
有没有更快的方法根据我的脚本输入进行断言
因此,我不必再次逐行编写断言脚本
我的动作脚本:
cy.get('#B1_check-true').click();
cy.get('#B2_check-false').click();
cy.get('#save-btn').click();
cy.reload()
要断言收音机或复选框已选中,您可以使用:
cy.get('#B2
我需要帮助了解如何使用cy.route()和cy.wait()检查下面三个API调用的结果是200还是成功
HTTP地址
请求URL:
申请方式:邮寄
状态代码:200 OK
请求有效负载-根据该值,我看到三个API调用使用上述Http请求,如下所示
{CountryCode: "USA", countryRatingType: "A"}
{CountryCode: "USA", countryRatingType: "B"}
{CountryCode: "USA", countryRating
我正在使用Cypress进行端到端测试,我希望能够在浏览器中查看所有运行测试套件,即使在它们运行之后也是如此。目前,在每个测试套件完成后(存储在单独文件中的测试),浏览器将重新加载,并且我看不到以前运行的测试,在最终测试套件完成后,浏览器将关闭。是否有更改此行为的选项,以便我可以运行所有测试文件,使所有结果在浏览器中可见,并且浏览器不会在最后关闭
我目前正在使用以下命令运行测试:./node_modules/.bin/cypress run--headed--spec'cypress/integ
自定义命令也非常简单:
So I have a pretty `before` and `beforeEach` function that runs before all tests. It looks something like this:
describe("JWT Authentication", function() {
before(function() {
// custom command runs once to get token for JWT auth
我最近开始使用Cypress,我注意到运行测试可能需要60-80秒,但如果我在浏览器上使用相同的UI流,则需要20-30秒才能完成
这正常吗?
是否存在影响它的任何配置
我的测试只有几行长,只使用cy.get和cy.contains。Cypress测试比单元测试慢得多,这是正常的。UI和headless run之间的差异可能是由命令和测试之间的cypress初始化引起的
为了减少通过测试所需的时间,请避免使用cy.wait,而使用例如cy.get
您还可以尝试使用无头浏览器chrome标志运行多
我正在做单元测试。赛普拉斯现在犯了一个错误。它找不到测试。但是在login.js文件中,我编写了代码。我不明白为什么它找不到测试,它确实存在
测试代码:
describe("login", () => {
beforeEach(() => {
cy.visit("http://localhost:8080");
});
}))
错误:
integration\login.js
我们无法在上述文件中检测到任何测试。编写一些测试并重新运行
路径:
server/cypress/
我正在用Cypress测试我的登录组件(刚刚开始),我想处理API返回状态200、400或500的三种不同情况。我想模拟这些反应,看看前端是如何反应的
在向API端点发送请求时,我想模拟三种不同情况(200、400和500)的响应http://localhost:9999/api/login
我已经写了一些基于文档的代码,但我仍然没有达到我想要的程度
description('Login Approach',()=>{
它('login',()=>{
cy.visit(“/login”)
//如
我也尝试过其他事情,比如利用角色。根据我在文档中的理解
cy.get('role=input')
cy.get('[role=input]')
cy.get('role="input")
cy.get('[role="input"])
cy.get('role=textbox')
cy.get('[role=textbox]')
cy.get('role="textbox")
cy.get('[role="textbox&qu
我正在用Cypress尝试基于模型的测试方法。这意味着所有测试用例都是从提供的“状态”和“事件”动态生成的。状态检查正常,DOM事件按预期触发,但我在拦截网络请求时遇到问题。我需要做的是:
在我转到页面之前设置请求拦截,因为第一个请求在页面加载之后立即启动
等待模型使用适当的响应数据执行事件
在事件执行期间,向请求提供响应数据并“取消暂停”
我试过的
我认为如果您只调用cy.intercept,请求将暂停,直到调用其他cy.intercept和reply()或continue()的请求。在此之前
我目前正在使用cypress进行自动化创建。主要目的是在不同的设备上执行代码
我的代码如下:
describe('Page objects', function() {
before(function() {
cy.visit("http://localhost:8100/tab1")
})
it('shows authenticated user', function() {
if (Cypress.env('isMobile')) {
我想知道有没有什么办法可以把饼干保存在柏树里。
我尝试在cypress中为我的应用程序自动化一个功能,但无法加载页面
Cypress.Cookies.defaults({
whitelist: ["cookie_name", "cookie_name" ]
});
//测试描述功能
afterEach(() => {
Cypress.Cookies.preserveOnce();
});
我正在尝试编写一个测试,该测试应该检查a中的项目是否被禁用
项目是可见的,但不可单击,这是正确的。但我不知道如何写我的测试,使其通过这一正确的
由于无法选择“新建”,我当前的测试将失败
it('Not clickable', function() {
cy.visit(url);
cy.get('#dropDownMenu').should('be.visible', 'Choose...');
cy.get('#dropDownMenu').se
我们正在使用Cypress自动化UI测试用例。我们最近将cypress框架与测试轨集成在一起。它能够在测试轨道中创建测试运行
问题:
我们希望所有测试运行都应该放在测试计划或任何套件或任何文件夹中。目前,所有测试运行都是在测试轨道“测试运行和结果选项卡”中独立创建的(见下面的屏幕截图),这会污染测试轨道仪表板
所有测试运行是否都应该放在计划或文件夹中
我尝试过的解决方案:
1) 我尝试在reporter选项中提供测试计划id,但没有成功
2) 您尝试过@architectnow/cypress
我不熟悉柏树。如何使用Cypress从excel文件中读取数据?在google中搜索,但找不到有用的答案。以下是如何使用excel作为cypress测试源的说明
首先,您需要使用xlsx将xlsx文件转换为json
从“fs”导入{writeFileSync};
从“XLSX”导入*作为XLSX;
试一试{
常量工作簿=XLSX.readFile(“./testData/testData.XLSX”);
const jsonData=XLSX.utils.sheet_to_json(workBo
我正在为grafana开发一个自定义数据源插件。我已经完成了使用jest和Ezyme的单元测试。但是对于端到端测试,grafana的人提供了他们自己的测试包(),但是文档()没有提供关于如何执行e2e测试的深入信息(至少对于像我这样的初学者)。
所以我想使用Cypress测试,因为它有丰富的文档。是否可以使用Cypress执行良好的端到端测试
我正试图用cypress和Percy做一个简单的视觉测试
在本教程之后,我将percy作为cypress软件包的一部分安装,但是当我尝试运行时
npx percy exec--cypress run。我收到了这样的信息:
错误:找不到浏览器版本756035。运行“npm安装”或“纱线安装”下载浏览器二进制文件。
还有其他人有这个问题吗
可能值得注意的是,当我运行npx cypress run时,测试按预期运行。npm安装过程出现问题,很可能解压失败,不会返回错误
最简单的方法是删除节点模块并重新
期望的行为
我想使用CYPRESS_DOWNLOAD_MIRROR指向我的CYPRESS人工配置,只需要能够进行npm安装和下载CYPRESS库和二进制文件
当前行为
在artifactory中设置Cypress,并使用针对该工具设置的Cypress_DOWNLOAD_MIRROR进行下载时,下载脚本会将二进制文件查找为X.Y.Z而不是Cypress.zip,并失败。显然我不能在artifactory中重命名二进制文件。它似乎以X.Y.Z而不是cypress.zip的名称提供了它
我的artif
我正在cypress中创建一些集成测试
我现在已经完成了注册过程这是一个文件测试
registration.spec.js
现在,我想运行login.spec.js测试。如何使用在registration.spec.js中创建的动态电子邮件,并在“login.spec.js”中使用该电子邮件
这是如何实现的。cypress是否有全球性的交易
另外,如果我以独立方式运行login.spec.js,是否有办法使用“提供的”凭据或通过全局参数保存的凭据来运行所有测试?这有意义吗
我想运行所有的测试
r
我正在运行Chrome74,我想写一个测试,它会“垃圾邮件”点击计数器
是否有任何方法可以将其写入,使其单击x次,而不是反复写入:
cy.get('[data cy=click up]')。单击()
我在Cypress Gitter中问道,有人回答说:
如果选择器匹配n+Dom元素,则
单击所有em
cy.get(选择器)。单击({multiple:true})
但这对我的问题不起作用
如果可以,我愿意分享直接代码,但我有保密协议
解决方案
所以,我接受了jon的评论,是的,一个for循环可
如何使用cypress单击此链接
这很简单,Cypress的文档也会对您有所帮助:。但我也会帮你的。我假设这是页面上唯一的超链接:
cy.get('a'))
。单击()
如果它不是您可以尝试通过类获取链接的唯一链接(假设该类在页面上是唯一的):
cy.get(“.button”)
。单击()
如果两个假设都无效,则类不是唯一的,并且存在多个超链接,您可以尝试以下操作:
cy.get('a'))
.eq(1)
。单击()
eq()中的1是元素的编号。第一个元素是0,第二个元素是1,第三个元素
我想在每个“规范”开始之前重置我的数据库不是在每次测试之前
我发现我可以在support/index.js
before(function () {
cy.exec('npm run db:reset')
// This run only once before ALL the spec
})
beforeEach(function () {
cy.log('RUN BEFORE EACH TEST IN EACH SPEC')
})
我想在每个等级库文件之前运行。我
标题下的Cypress docs最佳实践部分如下所示:
请记住,Cypress已经在每次测试之前自动清除本地存储、cookies、会话等
每个测试是否意味着“每个it()block”?
给定下面的代码及其注释,第二个it()块是否没有cookie,没有会话,只是因为幸运的是页面没有更改而传递
description('登录时',()=>{
之前(()=>{
cy.customLoginAndSetSomeCookies()
cy.visit(“/页仅适用于登录人员”)
})
它('我能看到一些东
当我加载页面时,它会调用我的apihttps:///products。在cypress中,此请求失败,原因是:
GET https://<apiurl>/products net::ERR_EMPTY_RESPONSE
在另一个答案中找到了答案
describe('Plans page', () => {
it('should load', () => {
cy.visit('http://localhost:8001/plans')
expect(
如何在cypress中使用xpath上传文件
我得到如下所述的错误
constxpath=require('cypress-xpath')
描述('文件上传演示',()=>{
add('uploadFile',{prevSubject:'element'},(subject,fileName)=>{
console.log('subject',subject)
返回cy.fixture(文件名“base64”)
.then(Cypress.Blob.base64StringToBlob)
.然
我在这里找不到类似的问题。我们一直在驾驶Cypress进行E2E测试。有一件事情不是很明显,但感觉有问题,那就是在Cypress录制的视频中,正在键入的任何机密文本(密码)都被记录在视频录制中。人们以前遇到过这个问题吗?有没有办法解决这个问题?如果你的网页本身没有显示明文。有一种方法可以隐藏cypress命令
加
然后您可以看到命令被隐藏
请参见我可以问一下为什么需要向其他人播放这些视频吗?测试报告和屏幕截图不够?如果没有,你可以关闭视频选项。即使是屏幕截图,当它在该步骤/屏幕上失败时,也会出
有人能帮我解决以下问题吗
我必须执行select语句,并使用Cypress将查询结果存储在变量中
下面是我试过的代码。我想存储查询结果
从INumber='.invoiceNumber.'的发票中选择id,然后选择变量rec
请帮我做到这一点
cy.task('sqlServer:execute',“从INumber='.invoiceNumber.'的发票中选择id”)
.then(函数(记录集){
var rec=记录集
})
我可以给你举个例子。
在测试sepc.js中
describe(
您好,我有一个表单提交到graph ql api。当我单击submit按钮时,我看到cypress在能够得到响应之前取消了对api的一个请求。你知道怎么预防吗?
编辑:我尝试添加cy.wait(6000);或cy.wait('apiAlias'),单击后提交,以及“帮助”
通过阻止表单按建议提交的默认行为,解决了这一问题
然后在测试中:
preventFormSubmitDefault("form");
cy.get('[data-test="submitButton"]').c
浏览器报告连接不安全,因此未正确加载证书。但是,请手动打开它正确加载的网站
有谁能告诉我如何修复无效证书问题,这会导致启动错误的URL
我在我的cypree.json中尝试了“chromeWebSecurity”:false,但没有成功
请帮我解决这个问题。如果不是您的网站,您无法修复它。
您可以做的是验证它无效的原因,并决定接受它,尽管证书无效,但仍然打开与服务器的https连接
通常步骤如下:
单击高级按钮
读懂
单击“接受”或关闭选项卡
证书无效的常见原因有:
域名无效,已为多个vhos
如果我没有类或id,如何使用cy.get(?)。选择('2')
月
1.
2.
3.
您可以根据名称尝试以下操作,然后通过索引eq(2)查找选项以获得第二个选项。这里,eq(0)是月,eq(1)是1,eq(2)是2,依此类推
cy.get('select[name="register[personal][birthday][month]"] > option')
.eq(2)
.click()
您可以根据值尝试另一个:
cy.get('select[name=
我正在尝试存根服务器响应,以便当服务器关闭时,我可以看到给定的错误网页。我现在面临的挑战是,服务器正在被下面的代码存根,但我想存根的不仅仅是响应主体,还有状态代码
const apiUrl = "https://webtmanial.dadaere.com/judadalerer"
cy.server()
cy.route(
'POST',
apiUrl,
500
).a
我的web应用程序引发POST XHR请求,我想停止POST请求并将其转换为GET请求,然后将其转发到服务器,然后检查405状态代码。
我可以检查响应状态代码,但无法修改来自POST的请求以获取。有人这样做过吗
尝试了多种选择
代码剪1:和其他标题一样,我尝试使用“请求方法”,但没有成功
then('saving the new user form', () => {
cy.typeText('#nameInput > input', 'Test ');
cy.typ
我正试图在Cypress中实现一个悬停命令,所以我要这样做:
Cypress.Commands.add("hover", { prevSubject: "element" }, (subject) => {
return subject.trigger("mouseenter");
});
然后像这样使用它:
cy.get(`[test-id="my-test-id"]`).hover();
但是它
1 2 3 4 5 6 ...
下一页 最后一页 共 11 页