javascript - Cypress 捕获 href 字符串以在以后的请求中使用

标签 javascript cypress

我想捕获生成的 href 的字符串表示形式,并在我导航到的后续页面中使用它。

我尝试使用 cy.get()、cy.find() 等捕获 anchor ,以便稍后可以单击()它,但显然该链接在离开页面后就会变得陈旧。我尝试链接到 then(),我也尝试使用 .getAttribute(),但我得到一个对象而不是字符串。

我正在努力寻找一种方法来获取 cypress 对象的底层值,甚至调用 cy.document() 返回一个 cypress 表示,而不是我直观地猜测的THE DOM 文档。显然,我不知道 Cypress 在做什么,也不知道框架的意见有多少线索,除了我感觉我正在尝试实现一些 Cypress 反模式。

我并不关心如何实现,但我想捕获生成的 url,我可以在页面中的 anchor 标记 href 中找到该 url。请有人建议我如何捕获字符串值,以便我稍后可以在 cy.request() 中使用它?

如果需要,我可以稍后在我的计算机前发布一些示例,但我怀疑我的描述已经足够,但请让我知道。

示例:

describe('Test Description', function () {

  var capturedHref = "";

  before(function() {
    // can set the name here, it becomes the context text on an anchor
    generateLinkViaAppFunctionality();

    // find by the content text taken from name on link generation
    capturedHref = <href from link>
  }

  it('Test', function() {
    cy.visit('some app page');
    doStuff();

    cy.visit(capturedHref);
  })
}

最佳答案

这对你有用吗?我使用cypress文档中的anchor进行测试。

describe('Test anchor link', function(){
  it('test', function(){
    let anchorlink = '';
    let url = 'https://docs.cypress.io/guides/overview/why-cypress.html#Who-uses-Cypress';
    cy.visit(url);
    cy.get('#Cypress-ecosystem > a').then(($anchorlink)=>{
      anchorlink = $anchorlink.prop('href');
      console.log(anchorlink);
    })
});
});

完整的 url 会打印在控制台中。 enter image description here

您可以稍后使用它。

关于javascript - Cypress 捕获 href 字符串以在以后的请求中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58382095/

相关文章:

javascript - Cypress 断言 - 元素是可操作的/未涵盖

javascript - 回调为 num_rows 并在语句满足时中断

javascript - Cypress 可以运行从 Cypress 文件夹外部导入的测试文件吗?

javascript - 如何在 php 中使用 javascript 代码?

javascript - 将类 "last"添加到每个 div 编号 4 、 8 、 12 、 16 等

javascript - 在 Cypress 中递增和递减 &lt;input type ="number"/> 的值

cypress - 如何在 Cypress 中的自定义命令中记录上一个主题

angular - 如何在 CI 中运行 cypress 之前为 angular cli 应用程序提供服务?

javascript - dojo/date/locale - 空日期

javascript - 下拉菜单更改表单中的电子邮件