0

htmlのスクリプトで自動フォーカスされたボタンをクリックしようとしています。 絶対パスと相対パスの両方を試しましたが、運はありません。かなり私が考えることができる何か。添付されたスクリーンショットは、xpathが要素をWeb上で正常に検索していることを表示しますが、セレニウムで使用すると要素を見つけることができません。 私はまた、ジェネリック関数を使って要素を10秒間明示的に待つことを試みました。 (スクリーンショットをチェックする)この機能は、これ以外の以前に呼び出された他のボタンすべてに対して機能します。スクリプトで自動フォーカスされたボタンをクリックできません

私の目を傷つけました。ボタンを自動フォーカスするメソッドが呼び出されました。この場合は、ウィンドウ全体またはページにフォーカスを移動する必要があります。私はまたEnterキーを送信しようとしましたが、まだ運がありません。

質問1:誰にも解決策がありますか? 質問2:誰かがページにフォーカスを切り替える方法を知っていますか? 質問3:または何か。

どのような提案も高く評価されています。

enter image description here enter image description here

+0

あなたの試行の結果、エラーが発生しましたか?つまり、要素が存在するのか、またはSeleniumがエラーを返しますか? Seleniumがその要素が存在し、可視で有効になっていると言えば、その要素をクリックできるはずです。 xpath(ロケータ)が送信ボタンを参照していない可能性があります。 –

+0

Textでのコードの試行で質問を更新できますか? – DebanjanB

+0

iframeで問題が発生しました。ドライバをiframeに切り替えることで動かすことができました。それはその後の魅力のように働いた。私はすべての答えと提案をあなたの助けに感謝します。 –

答えて

0

親ウィンドウ/デフォルトのコンテンツウィンドウにフォーカスを切り替えるには、あなたは、ドライバのインスタンス上switchTo()メソッドを使用する必要があります。

driver.switchTo().parentFrame(); 

OR

driver.switchTo().defaultContent(); 

あなたは、現在フォーカスされている要素を知るために次の2つのステートメントを使用することができます。

driver.switchTo().activeElement(); 
driver.getPageSource(); 
0

クリックする代わりにJavaスクリプトのクリックを使用します。このように、これが助けてくれることを願っています。

WebElement element = driver.findElement(By.id("SubmitButtonId")); 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
executor.executeScript("arguments[0].click();", element); 
0

入力タグをクリックしようとすると、スクリプトは失敗します。正しいロケータだけを見つけてください。あなたが言ったようにsubmit()関数を助けるか試してみると、この要素は自動的に選択されます。

0

私はあなたが同じをクリックする前に表示することで要素を持参する必要があると考えて:

そのためのコードは次のとおりです。 ((JavascriptExecutor)ドライバ).executeScript( "引数[0] .scrollIntoView(真) "、webElement);

関連する問題