2017-06-22 11 views
0

xqueryセレクタを使用していて、iframeの入力フィールドの値を無駄なく設定しようとしました。 "//入力[含まれています(@name、" プロジェクト名 ")]" を使用して::XPathのため、セキュリティ上の懸念のNightwatchがiframeの要素にアクセスできない

+0

あなたはインラインフレーム内の入力フィールドに値を設定する前に、最初のiframeに切り替えたのですか? – Satish

+0

まず、アプリケーションに行き、一種のポップアップフォームが表示されるボタンをクリックします。私は情報を記入したい。あなたの質問に戻ると、私は.frame( 'someid')を使ってフレームに直接行きました。その前に私はフレームに関連する何もしていません。だから、最初にフレームに切り替えた後、入力フィールドを変更しました。 –

+0

さて、私はxqueryセレクターについては確信していますが、.frame( 'someid')がpythonバインディングでswitch_to.frameと同じ結果をもたらすことがわかります。フォームがポップアップで開くので、新しいウィンドウに切り替える必要があるかもしれません。その場合は、新しいウィンドウに切り替える必要があります。 – Satish

答えて

0

不可

`.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

関連する問題