2012-02-13 72 views
2

WebDriver->我试图捕获从UI-Calender中选择的'日期'。我想找到选择使用javascript.For的“日期”元素,我使用了以下内容:Webdriver executeScript命令使Firefox无响应

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

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

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

但奇怪的是,当我添加上面的线,火狐停止响应,那么脚本停止工作.Version火狐:3.6

+0

使用chromedriver故障跟踪显示“java.util.ArrayList中不能转换为org.openqa.selenium.WebElement”找到东西Intresting。 – Mandy 2012-02-13 11:48:15

+1

这是因为'executeScript'不会返回'WebElement' - 它用于执行JavaScript。你为什么不做'find_element(By.id(“abc”))。getAttribute(“value”)' – p0deje 2012-02-13 13:01:19

+0

是的!我知道查找元素,但这里的重点是我们不能识别使用javascript/jQuery的元素webdriver文档建议我们可以这样做...... [link] http://seleniumhq.org/docs/03_webdriver.html – Mandy 2012-02-13 13:13:26

回答

3

这是因为return $('#abc')返回一个DOM元素数组。您应该使用return $('#abc')[0]

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

是啊!解决了这个问题。谢谢!! – Mandy 2012-02-13 14:21:57

+0

小心接受答案:) – p0deje 2012-02-13 14:25:31