サイプレスの調査を開始したばかりで、そのような問題に遭遇しました。具体的な属性を選択し、SeleniumのようにJavascriptExecutor
を使用してその値を変更することは可能ですか?たとえば、この簡単なコードを見てみましょう
input id="mapsearch" type="textbox" class="form-control" name="address" test=""
テスト属性を取得して自分の値を割り当てることはできますか?
はい。 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')
_