小编Zac*_*ist的帖子

在 Cypress 中提交 POST 表单并导航到结果页面

当我使用 cy.request() 命令时,Cypress 加载响应正文时遇到问题。

在我们的应用程序中,当填写并提交表单时,它会发布,并且响应正文是新页面。

当我尝试在赛普拉斯中执行时,是以编程方式填写表格。因此,我设置了一个 cy.request() 命令,其正文填充了表单字段,这与手动填写时发生的情况相同。当我运行该命令时,我可以查看控制台并看到返回了正确的正文,但新文档页面未加载。所以我只能坐在旧的空表单页面上。

cy.request({
        url: "company-webpage-form-url.com",
        method: "POST",
        form: true,
        body: {
            first_name: "first_name",
            last_name: "last_name",
            company_name: "company_name",
            address1: "address1",
            address2: "address2",
            city: "city",
            state: "NY",
            zip: "13903",
            country: "US",
            phone_number: "607-555-5555",
            phone_ext: "555",
            fax_number: "fax_number",
            fax_ext: "fax_ext",
            email: "developer@company.com",
            email_2: "developer@company.com",
            user_data: "Continue"
        }
    });
Run Code Online (Sandbox Code Playgroud)

所有数据都是正确的,我得到了正确的响应正文,但我只能在控制台中看到它。我不知道如何加载它,就像我提交表单时一样。我现在得到的只是 200 响应,测试结束。

我尝试立即访问下一个 URL,但收到一条错误消息,指出该 URL 的页面不存在。我尝试在 POST 之后单击提交按钮,但这只会导致提交空表单,从而导致验证错误。

我不知道如何让 cypress 加载响应正文,该正文采用文档的形式(新页面)。有人有什么建议吗?

编辑:我应该补充一点 - 我希望通过 POST 填写表格的原因是因为我需要填写该表格来测试某些选项是否有效。我有一个测试可以确保表单字段和提交按要求工作,但对于需要在此表单另一侧检查的 30 多个选项,我想遵循赛普拉斯的最佳实践,即不要每次都手动填写表单单次(他们展示了在网站上登录的示例)。

response xmlhttprequest request cypress

7
推荐指数
1
解决办法
9935
查看次数

是否可以在 HTML 中使用内联 Javascript 的源映射?

是否可以在 HTML 脚本标签中的内联 Javascript 中使用 data-URI 源映射?

\n\n

我已经尝试了以下 HTML 的一些变体,但当页面在 Chrome 中加载时,它们似乎都无法为嵌入的 JS 生成可用的源映射:

\n\n
<script type="text/javascript">\n/* source code... */\n\n//# sourceMappingURL=data:application/json;base64,/* base64\'d inline sourcemap */\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我还尝试从生成的源映射中剥离sourcesContent, file, 和sourceRoot,因为我认为这些不适用于这种情况。但这似乎没有帮助。

\n\n

该规范似乎暗示这是可能的,或者至少是考虑过的,因为src简要提到了没有属性的脚本标签:

\n\n
\n

如果生成的代码与 script 元素关联,并且该 script 元素没有 \xe2\x80\x9csrc\xe2\x80\x9d 属性,则源原点将为 page\xe2\x80\x99s 原点。

\n\n

https://sourcemaps.info/spec.html

\n
\n\n

然而,我很难找到在野外使用这种方法的证据,或者是否有可能。任何人都可以帮助阐明这一点吗?

\n

javascript google-chrome-devtools source-maps

7
推荐指数
1
解决办法
1424
查看次数

如何在 Cypress 中检查多个 CSS 类的元素?

如何检查一个元素是否有多个类?在官方文档上找不到任何内容,只有:

cy.get('form').find('input').should('have.class', 'disabled')

或者

expect($el).to.have.class('foo')

插入多个类名时,出现错误:

expect($el).to.have.class('foo bar baz')

有解决办法吗?

testing e2e-testing cypress

6
推荐指数
1
解决办法
5562
查看次数

是否可以使用 Cypress 将“postMessage”发送到应用程序?如何传递通过“postMessage”接收的数据?

我正在创建 Cypress e2e 测试,但是我们的应用程序在父页面顶部作为模式(iframe)打开。由于 Cypress 不支持 iframe,我决定尝试“独立”运行应用程序。window.postMessage然而,在启动应用程序时,通过(有关流程和会话的信息)从父页面获取数据。是否可以通过 Cypress 将这些数据传递给应用程序?

我尝试通过 cy.request 获取从后端接收的数据,它解决了会话数据的问题,但是我仍然不知道如何传递有关流的信息。

browser automated-tests e2e-testing cypress

4
推荐指数
1
解决办法
4495
查看次数

使用 zxing 生成具有自定义点形状的二维码

我正在编写一个应用程序来生成带有自定义点形状的二维码。使用 zxing 执行此操作的最佳方法是什么?

到目前为止,我已经挖掘了源代码,我看到数据位是写在com.google.zxing.qrcode.encoder.MatrixUtil.embedDataBits() 中的。我想我可以在此函数的末尾添加一些代码,这将允许我屏蔽点,但我不确定如何在 Java 中执行此操作。我不能扩展这个类,因为它被声明为 final。这会是一个好主意吗,如果是这样,我将如何以这种方式扩展这种方法?

我一直在寻找的另一个选项涉及对 QRCode 生成的图像进行后处理,但我认为这真的很复杂,因为我必须找到一种方法来从定位方块中辨别点。

有没有更好的方法来做我想做的事情?除了 zxing 之外,还有其他二维码库可以做我想做的事情吗?

PS我想注意,尽管关键字相似,但这不是这个问题的重复。

java qr-code zxing

3
推荐指数
1
解决办法
4315
查看次数