我刚刚开始探索赛普拉斯并遇到了这样一个问题:是否可以在JavascriptExecutor
的帮助下选择具体属性并像Selenium一样更改其值?例如,让我们采用这段简单的代码
input id="mapsearch" type="textbox" class="form-control" name="address" test=""
是否可以获取测试属性并指定我自己的值?
答案 0 :(得分:11)
是。您可以在赛普拉斯测试中使用JavaScript执行任何操作。对于上面的html,您可以使用.invoke()
:
cy.get('input[test]')
.invoke('attr', 'test', 'my new value')
.should('have.attr', 'test', 'my new value')
赛普拉斯使用jQuery,所以你可以像这样在jQuery中调用任何函数。您可以使用.then()
生成输入后使用纯JavaScript:
cy.get('input[test]').then(function($input){
$input[0].setAttribute('test', 'my new value')
})
.should('have.attr', 'test', 'my new value')