单击cypress中的ng if值
我有一个参数选项卡,我想单击该选项卡 下面是相同的HTML。由于单击cypress中的ng if值,cypress,Cypress,我有一个参数选项卡,我想单击该选项卡 下面是相同的HTML。由于ngIf:activewizmenu!='参数“ <div class="navigation-tab"> <!-- ngIf: activewizmenu == 'parameters' --> <!-- ngIf: activewizmenu != 'parameters' --> <div ng-if="activewizmenu !=
ngIf:activewizmenu!='参数“
<div class="navigation-tab">
<!-- ngIf: activewizmenu == 'parameters' -->
<!-- ngIf: activewizmenu != 'parameters' -->
<div ng-if="activewizmenu != 'parameters'" class="ng-scope">
<!-- ngIf: hasCreatedTask() -->
<div ng-if="hasCreatedTask()" class="ng-scope" style="">
<a ui-sref=".parameters" href="#/game/wizard/G_1544166059776_U/edit">
<div class="tab">
<img src="images/gamification/panel_icons/icone_mw_gametab_0018_Oggetto-vettoriale-avanzato-copia-9.679f1df3.png" alt="parameters">
<div class="heading ng-binding">PARAMETERS</div>
<span class="color-purple ng-binding">Set parameters</span>
</div>
</a>
</div>
<!-- end ngIf: hasCreatedTask() -->
<!-- ngIf: !hasCreatedTask() -->
</div>
<!-- end ngIf: activewizmenu != 'parameters' -->
</div>
使用。单击()
并选择{force:true}
这将强制触发单击和所有后续事件,即使该元素不被视为“可操作”
例如:
cy.get(##your element identifier##).click({ force: true })
在AngularJS中,当表达式为false时,ngIf将从DOM中完全删除元素及其子元素,因此使用
cy.get()。单击({force:true})
可能不够
在这个DOM中,用于按属性及其值进行选择的语法
我想试试下面的方法
cy.get(“a[href |='#/game/wizard/G_1544166059776_/edit']”)
.should('be.visible')
。单击()
这将等待5秒钟,使可单击元素出现。如果不这样做,它将失败,并显示一条消息,如超时,希望[href]可见
如果它确实失败(例如如果activewizmenu!=“parameters”
从未变为true),那么您仍然可以根据此问题导航到href的目标
通过更改属性值。成功了
cy.get ('.navigation-tab > .ng-scope > a > .tab')
.invoke('attr','ng-if','activewizmenu = parameters')
cy.contains ('PARAMETERS').should('not.be.visible')
.click({force: true})
如果我写这篇文章,那么将找到5个元素。我收到错误“CypresError:cy.click()只能对单个元素调用。您的主题包含5个元素。如果要连续单击每个元素,请传递{multiple:true}。”我将导航选项卡添加到我的答案中,作为示例。您应该将要单击的正确元素传递给get()
函数。这里重要的是将{force:true}
添加到单击处理程序中。是的,虽然我没有得到错误,但仍然无法单击。我感到困惑。您是否正在尝试单击应用程序当前状态下不应单击的元素?我需要更多信息。你能给我们看一下cypress密码吗?您使用的是看起来像的angular JS。我很困惑,您的元素是否由于条件而没有显示在DOM中。如果你的元素真的出现在屏幕上,我应该能够帮助你。此条件是否激活WizMenu!='参数'true当您运行测试时,我可以通过更改属性值来执行此操作:cy.get('.navigation tab>.ng scope>a>.tab')。invoke('attr','ng-if','activewizmenu=parameters')cy.contains('parameters')。应该('not.be.visible')。单击({force:true})干得好。如果你把它作为答案贴出来,我会投赞成票。
cy.get ('.navigation-tab > .ng-scope > a > .tab')
.invoke('attr','ng-if','activewizmenu = parameters')
cy.contains ('PARAMETERS').should('not.be.visible')
.click({force: true})