0
xqueryセレクタを使用していて、iframeの入力フィールドの値を無駄なく設定しようとしました。 "//入力[含まれています(@name、" プロジェクト名 ")]" を使用して::XPathのため、セキュリティ上の懸念のNightwatchがiframeの要素にアクセスできない
xqueryセレクタを使用していて、iframeの入力フィールドの値を無駄なく設定しようとしました。 "//入力[含まれています(@name、" プロジェクト名 ")]" を使用して::XPathのため、セキュリティ上の懸念のNightwatchがiframeの要素にアクセスできない
不可
`.frame('someid')
.setValue('//input[contains(@name,"project name")]', 'Nightwatch Project')
.pause(5000)
.frame(null)`
これは、要素を見つけることができないと言います。代わりに、JavaScript postmessageイベントapiを使用して値を設定できます。 iframeに値を設定したいときはいつでも、外側のウィンドウからpostmessageイベントを送り、それを内側のウィンドウと設定値で待ち受けます。
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
あなたはインラインフレーム内の入力フィールドに値を設定する前に、最初のiframeに切り替えたのですか? – Satish
まず、アプリケーションに行き、一種のポップアップフォームが表示されるボタンをクリックします。私は情報を記入したい。あなたの質問に戻ると、私は.frame( 'someid')を使ってフレームに直接行きました。その前に私はフレームに関連する何もしていません。だから、最初にフレームに切り替えた後、入力フィールドを変更しました。 –
さて、私はxqueryセレクターについては確信していますが、.frame( 'someid')がpythonバインディングでswitch_to.frameと同じ結果をもたらすことがわかります。フォームがポップアップで開くので、新しいウィンドウに切り替える必要があるかもしれません。その場合は、新しいウィンドウに切り替える必要があります。 – Satish