2012-02-13 10 views
2

WebDriver-> UIカレンダーから選択した「日付」をキャプチャしようとしています。私は次のように使用javascript.Forを使用して選択された「日」要素見つけたい:Webdriver executeScriptコマンドでfirefoxが応答しなくなる

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('#abc')"); 

String s=element.getAttribute("value"); 

System.out.println(" "+s); 

しかし、不思議なこと、私は上記の行を追加するとき、Firefoxが応答を停止し、その後、スクリプトが.Version Firefoxの動作を停止:3.6

+0

障害トレースをchromedriver使用上のintresting何かが「java.util.ArrayListのはorg.openqa.selenium.WebElementにキャストすることはできません」と表示されます。 – Mandy

+1

これは、 'executeScript'が' WebElement'を返さないためです.JavaScriptを実行するためです。なぜあなたは 'find_element(By.id(" abc "))をしないのですか?getAttribute(" value ")' – p0deje

+0

はい!私は要素を見つけることは知っていますが、ここでのポイントはjavascript/jQueryを使って要素を特定できないということです。webdriverのドキュメントには、私たちができることが示唆されています...... [link] http://seleniumhq.org/docs/03_webdriver.html – Mandy

答えて

3

return $('#abc')はDOM要素の配列を返します。 return $('#abc')[0]を使用してください。発見

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('#abc')[0]"); 
+0

うん!!問題を解決します。ありがとう!! – Mandy

+0

次の答えを受け入れるように気をつけてください:) – p0deje

関連する問題