想要验证字符串的一部分不应该为空

Want to validate the part of a string shouldn't be null

我有以下元素,其中包含 Practitioner 的字符串,其值为 1- zzz。如何在 - 之后验证它不应该是 null。即使有字符串或空。它不应该打印 null。还想selectPractitioner下的值(目前硬编码元素的位置为2

<div class="styles__container___BfTYi">
<div class="styles__subHeader___18Yg1">Practitioner</div>
<div class="styles__data___1senX">1- zzz</div>
</div>

我有以下代码来检索文本,

 cy.get(pageSelector.practitionerValidator).eq(2).then(function($getText) {
        let practitionerName = $getText.text();
        var validateLastName = practitionerName.split(' ');
        cy.log(validateLastName[1]);
        expect(validateLastName[1]).to.not.equal('null');
    })

可以直接检查整个字符串是不是null这样的:

cy.get('.styles__data___1senX').then(($ele) => {
  expect($ele.text()).to.not.be.null
})

或者如果你想检查你的内部文本是否为空,你可以这样做:

cy.get('.styles__data___1senX').then(($ele) => {
  expect($ele.text()).to.not.be.empty
})

您可以从文本 Practitioner 中找到选择器,如下所示:

cy.contains('Practitioner')
  .parent()
  .within(() => {
    cy.get('div[class*="styles__data__"]').then(($ele) => {
      expect($ele.text()).to.not.be.null
    })
  })

感谢您提供的详细程度。

我将放弃这个假设。

  • Practitioner 字符串将是随机的,在 - 之后可以有 space 或没有 space(即 34- sdfwe3- , 1- )

我会使用正则表达式来检查字符串的格式,以检查字符串是否以数字开头,后跟破折号和 space 以及字符串、spaces 或什么都没有. /\d+\-\s(\w+|\s+)?/

您的代码看起来有点像这样。

cy.get(pageSelector.practitionerValidator)
  .eq(2)
  .invoke('text') // get text
  .should('match', /\d+\-\s(\w+|\s+)?/) // use regex assertion