Cypress - if then functions

江枫思渺然 提交于 2020-07-20 11:41:09

问题


I have question about Cypress.

I have an element on page which doesn't appear allways. There is no logic when it shows and when not.

Is in Cypress some IF/THEN function or something how do you check if the element is displayed (so fill it up) and when you don't see it than skip that step?

My code:

if (Cypress.$('[data-bind="validationElement: interestInsurable"]').length > 0) {
            cy.get('[for="p4-conditional-csob-interest-insurable-1"]').click()        
        }
else {cy.get('#car-info-serie')}

This is how it looks like in playground: Picture

And there is HTML of that checkbox:

<label class="z-radio z-radio-inline primary" for="p4-conditional-csob-interest-insurable-1" data-bind="popover: { content: VehicleInsuranceTooltips.conditionalDataCsobInterestInsurable1Tooltip }" data-original-title="" title="">
    <input id="p4-conditional-csob-interest-insurable-1" name="p4-conditional-csob-interest-insurable" type="radio" class="custom-radio" data-toggle="radio" data-bind="checkedValue: 1, checked: interestInsurable" value="1">
<span class="icons">
<span class="icon-unchecked"></span>
<span class="icon-checked"></span>
</span>
Patří vozidlo zájemci o pojištění?
</label>

回答1:


There is no built in way to do this in cypress. I am using this in my tests:

if (Cypress.$("#yourElement").length > 0) {
  // element exists, do something
} else {
  // element does not exist, do something else
}



回答2:


You have to click on the input element instead of the label:

cy.get('#p4-conditional-csob-interest-insurable-1').click();

Anyways have a look at the Cypress Docs as conditional testing is strongly discouraged.



来源:https://stackoverflow.com/questions/53448012/cypress-if-then-functions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!