Javascript:赛普拉斯:select 样本不包含值
Javascript: Cypress: select sample with not contain value
我想从下拉列表中 select 一个随机值,但不能 select 编辑特定值。
const initialOrderReason = cy.xpath("//tbody/tr[1]/td[4]");
tkm
.dropdownOptions()
.should("be.visible")
.then((options) => {
cy.get(Cypress._.sample(options))
.not.contain(initialOrderReason)
});
怎么可能?
有很多相关代码您没有显示,包括 HTML 但这是我根据您提供的解决方案
cy.xpath("//tbody/tr[1]/td[4]")
应该通过 .then()
而不是返回值来访问它。
并为所有元素提取元素的文本。
cy.xpath('//tbody/tr[1]/td[4]')
.invoke('text') // extract text
.then(initial => {
tkm.dropdownOptions().should("be.visible")
.then((options) => {
const texts = [...options].map(option => option.innerText) // extract texts
const notInitial = texts.filter(text => text !== initial) // filter out initial
const random = Cypress._.sample(notInitial) // random other value
// Assuming "//tbody/tr[1]/td[4]" gives a <select> element
cy.xpath('//tbody/tr[1]/td[4]').select(random)
});
cy.xpath('//tbody/tr[1]/td[4]') // requery the dropdown
.should("not.have.text", initial); // to allow DOM to change
})
我想从下拉列表中 select 一个随机值,但不能 select 编辑特定值。
const initialOrderReason = cy.xpath("//tbody/tr[1]/td[4]");
tkm
.dropdownOptions()
.should("be.visible")
.then((options) => {
cy.get(Cypress._.sample(options))
.not.contain(initialOrderReason)
});
怎么可能?
有很多相关代码您没有显示,包括 HTML 但这是我根据您提供的解决方案
cy.xpath("//tbody/tr[1]/td[4]")
应该通过 .then()
而不是返回值来访问它。
并为所有元素提取元素的文本。
cy.xpath('//tbody/tr[1]/td[4]')
.invoke('text') // extract text
.then(initial => {
tkm.dropdownOptions().should("be.visible")
.then((options) => {
const texts = [...options].map(option => option.innerText) // extract texts
const notInitial = texts.filter(text => text !== initial) // filter out initial
const random = Cypress._.sample(notInitial) // random other value
// Assuming "//tbody/tr[1]/td[4]" gives a <select> element
cy.xpath('//tbody/tr[1]/td[4]').select(random)
});
cy.xpath('//tbody/tr[1]/td[4]') // requery the dropdown
.should("not.have.text", initial); // to allow DOM to change
})