2016-05-12 9 views
1

UIテスト用のクロームドライバでnightwatchを使用しています。ウェブページで「primary-btn」をクリックしようとしたときに問題が発生しました。 WaitForElementは、セレクタ "#primary-btn"の2つの要素を検出しました。最初のものだけがチェックされ、その後の.click( '#primary-btn')は目的の結果を生成しません。Nightwatch .waitForElementVisible( '#primary-btn')警告:WaitForElementが2つの要素を検出しました

実際にdocument.getElementById( 'primary-btn')を使用して「#primary-btn」という名前の2つの要素があるかどうかを確認するために、Webページを確認しました。しかし、関数はidが 'primary-btn'の要素を1つしかリストしていません

これはなぜ起こるのかわかりません。ナイトウォッチのサポートはアニメーションが終了するのを待ちますか?

答えて

0

つまり、同一のIDを持つ2つの要素がページにあります。標準では一意の名前が付けられていますが、ブラウザには適用されません。あなたのブラウザでこのコマンドを実行することで、それを確認することができます。

document.querySelectorAll("[id='primary-btn']") 

または:

$x("//*[@id='primary-btn']") 

だから、期待される要素を取得するために、あなたは別の条件を使用してセレクタを拡張する必要があります。それは、例えば、次のようになります。

'#container-id #primary-btn' 
+0

を試してみてください、私は次のような結果を得る

payyans4u

+1

コンテナはおそらくアニメーションのある時点で複製され、次に削除されましたが、複製されたIDは説明されていました。 –

0

私はコマンドdocument.querySelectorAll( "[ID = '主-BTNを']")を実行するときに、この

document.querySelectorAll("div[id='primary-btn']:nth-child(1)") 
関連する問題