testing - 获取一个字符串以用于 cypress 中的 .visit() 调用

标签 testing cypress

我有一个 dom 元素,其中包含我想访问的字符串或 url。为了便于引用,我用数据属性标记了 dom 元素。

enter image description here

上面以粗体显示“Create Topic”的地方是字符串,在控制台中,您可以看到它有一个 data-test='topicUrl 属性。

我想捕获这个字符串值,以便稍后访问该 url。

我关注了the docs on Variables and Aliases并尝试过

cy.get('[data-test="topicUrl"]').invoke('text').as('Url')

这样我就可以使用

访问该页面
cy.visit(this.Url)

但这不起作用,它会在控制台中出现 TypeError: Cannot read property 'Url' of undefined 错误。

如何抓取 DOM 元素中的文本,以便稍后可以使用它访问 url?

最佳答案

您可以将其缓存到一个变量中并发出 cy.visit在回调中确保填充变量:

let url;
cy.get('[data-test="topicUrl"]').invoke('text')
    .then( value => {
        url = value;
    });

cy.then(() => {

    return cy.visit(url);
});

使用 cy.then()直接(而不是将其与另一个命令链接起来)没有记录在案,将来可能会在 cy.resolve( promise ) 时删除。已实现。

也许使用cy.wrap().then(() => {})会更好哪个应该永远有效(?)。

(完全靠内存,所以让我知道它是否不起作用,我会在有机会运行它时进行更新。)

关于testing - 获取一个字符串以用于 cypress 中的 .visit() 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49483464/

相关文章:

ruby-on-rails - 如何通过 mocha 和 test/unit 正确地 stub Rails 关联方法?

ruby - Ruby 中的快速(不安全)随机字节生成器

Dockerfile - 使用目标的哪个选项?

e2e-testing - 监视文件更改并 headless 运行

laravel - 从 Artisan 命令调用 PHPUnit 将忽略 XML 文件

testing - 负载测试数据库实例

javascript - 如何测试连接到 RabbitMQ 的 promise ?

sql - 我可以在 plugin/index.js 文件中传递 Cypress.env 吗?

cypress - 通过 LocalStack/AWS SES 接收电子邮件

typescript - Cypress 在 Jest 断言中导致类型错误