微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过赛普拉斯获得{p}结构的纯文本网站变量

如何解决通过赛普拉斯获得{p}结构的纯文本网站变量

我是柏树的新手。最近,我必须比较大量旧/新网站对的文本变量是否相同。既然有成千上万的网站,我发现cy.get('')逐一比较文本变量是否相同不是一个好主意。

此外,新旧网站的结构大不相同,因此当我cy.get('')使用特定的层次结构类/ ID名称时,文本变量的顺序可能会有所不同,即使它们应该相同整体文字内容。这个问题很烦人,因为通过cy.get(''),我将不得不想出另一种方式来调整文本顺序和文本内容,以确保它们得到相同的结果。 到目前为止,我计划提取旧网站的变量并将其推入数组,提取新网站的变量并比较其字符串数组是否相同。 顺便说一句,由于网站对使用几种不同的语言(中文,英语,法语,...等),因此最好通过存储在数组中进行比较而不是将文本内容硬编码为文本来使文本变量具有灵活性。恒定在柏树中进行比较。 因此,我想知道是否可以通过cypress提取所有html源并删除所有仅留下文本变量的东西?

我已经研究了这些资源,但是在赛普拉斯上却没有做到: How to strip HTML tags from string in JavaScript?

Get HTML source code as a string

https://github.com/bem/html-differ

get html source code

我的部分代码:(这不合适,因为网站的结构不同。它可能会提取不同的内容范围。)

 it('section one:',function () {
    for (const url_pair of url_array) {
      const temp = []
      cy.visit(url_pair.old)
      cy.get('.location').each(($el) => {
        cy.wrap($el).invoke('text')
          .then(text => {
            var string = text.replace(/[\s&\/\\#,+()$~%.'":*?<>{}|]/g,'').trim();
            temp.push(string)
          })
      })

      cy.visit(url_pair.new)
      cy.get('.location').each(($el,index) => {
        cy.wrap($el).invoke('text')
          .then(text => {
            var string = text.replace(/[\s&\/\\#,'').trim();
            expect(string).to.equals(temp[index]);
          })
      })
    }
  })

而且,我发现不可能编写这样的代码获取整个html源字符串:

 cy.visit(url_pair.old)
 cy.log(cy.get('html'))

任何有关如何通过赛普拉斯获得获得纯文本内容的想法都是一个很大的帮助!预先感谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。