首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cypress: Cypress().click() with或语句

Cypress: Cypress().click() with或语句
EN

Stack Overflow用户
提问于 2022-06-23 18:20:20
回答 4查看 230关注 0票数 2

问题是来自Cypress的Docker图像将浏览器语言设置为英语,页面上的一些元素被翻译成英文。它看起来像是Cypress中的一个bug,因为Docker图像中的浏览器,不管是什么语言,都会将某些文本翻译成英语。即使set浏览器语言是不同的。

我的本地浏览器语言与码头图像中的浏览器语言不同,所以我在本地的一些文本与码头图像(英语)不同。现在,我必须建立一个解决办法,直到柏树设法修复错误。

我想让柏树选择一个由逻辑或( || )选择的元素。但是,它不能工作,因为cypress.contains()不支持这一点。为了得到更好的说明,这里有一个简单的例子说明了我的意思。你知道如何实现这一点吗?

代码语言:javascript
复制
const value1 = data.text_local_language
const value2 = data.text_english

         cy.get("element")
          .contains(value1 || value2)
          .click();
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-06-23 20:29:38

您可以使用contains()

代码语言:javascript
复制
const value1 = data.text_local_language
const value2 = data.text_english

const regex = new RegExp(`${value1}|${value2}`)  // build regex from variables

cy.get("element")
  .contains(regex)
  .click();

正则表达式(斜杠内) value1|value2匹配value1value2 (或由管道符号|表示)。

票数 2
EN

Stack Overflow用户

发布于 2022-06-23 21:02:50

如果完全匹配是可接受的,则有oneOf断言。

代码语言:javascript
复制
cy.get('element')
  .should('satisfy', ($el) => {
    expect($el.text()).to.be.oneOf([value1,value2])
  })
  .click()
票数 4
EN

Stack Overflow用户

发布于 2022-06-23 18:44:07

您可以检查.then()命令中包含的文本并断言它。

代码语言:javascript
复制
const thisText = 'this'
const thatText = 'that'

cy.get('element')
  .then($el => {
    const text =  $el.text()
    const thisOrThat = text.includes(thisText) || text.includes(thatText)
    expect(thisOrThat, `text contains ${thisText} or ${thatText}`).to.be.true
    cy.wrap($el).click()
  })
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72734891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档