问题是来自Cypress的Docker图像将浏览器语言设置为英语,页面上的一些元素被翻译成英文。它看起来像是Cypress中的一个bug,因为Docker图像中的浏览器,不管是什么语言,都会将某些文本翻译成英语。即使set浏览器语言是不同的。
我的本地浏览器语言与码头图像中的浏览器语言不同,所以我在本地的一些文本与码头图像(英语)不同。现在,我必须建立一个解决办法,直到柏树设法修复错误。
我想让柏树选择一个由逻辑或( || )选择的元素。但是,它不能工作,因为cypress.contains()不支持这一点。为了得到更好的说明,这里有一个简单的例子说明了我的意思。你知道如何实现这一点吗?
const value1 = data.text_local_language
const value2 = data.text_english
cy.get("element")
.contains(value1 || value2)
.click();发布于 2022-06-23 20:29:38
您可以使用contains()
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匹配value1或value2 (或由管道符号|表示)。
发布于 2022-06-23 21:02:50
如果完全匹配是可接受的,则有oneOf断言。
cy.get('element')
.should('satisfy', ($el) => {
expect($el.text()).to.be.oneOf([value1,value2])
})
.click()发布于 2022-06-23 18:44:07
您可以检查.then()命令中包含的文本并断言它。
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()
})https://stackoverflow.com/questions/72734891
复制相似问题