赛普拉斯捕获href字符串以在以后的请求中使用

时间:2019-10-14 18:16:22

标签: javascript cypress

我想捕获生成的href的字符串表示形式,并在以后浏览的页面中使用它。

我尝试使用cy.get(),cy.find()等捕获锚点,因此以后可以单击(),但是显然,离开页面后,链接变得陈旧。我尝试链接到then(),也尝试使用.getAttribute(),但返回的对象不是字符串。

我正在努力寻找一种方法来获取cypress对象的基础值,即使调用cy.document()也会返回一个cypress表示形式,而不是我凭直觉就想到的是 THE DOM文档。显然,我不知道赛普拉斯在做什么,或者除了我感觉到我正在尝试实现某些赛普拉斯反模式以外,对框架的观点没有任何线索。

我不太在乎,但是我想捕获生成的URL,可以在页面的定位标记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);
  })
}

1 个答案:

答案 0 :(得分:1)

这对您有用吗?我在赛普拉斯文档中使用了锚来进行测试。

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

您以后可以使用它。