2015-02-24 115 views
0

基于搜索选择文本这里是我的代码如何使用硒的webdriver

List<WebElement> elementsList  =dr.findEements(By.xpath(".//[@id='messageBoxForm']/div/div[1]/div[1]/div/div[2]/div/div")); 
    Iterator<WebElement> itr = elementsList.iterator(); 
    while(itr.hasNext()) 
    { 
     System.out.println(itr.next().getText()); 
     WebElement element = (WebElement)itr.next(); 
     element.click();} ` 

我得到的输出:螺纹

生物

生物先生

异常“main”java.util.NoSuchElementException at java.util.ArrayList $ Itr.next(Unknown Source)

+0

不要叫接下来的2倍。这是好的:while(itr.hasNext())但是从这里删除next():System.out.println(itr.next()。getText()); – 2015-02-24 08:01:07

+0

我已经删除并执行线程“主”java.lang.ClassCastException异常:java.util.ArrayList $ Itr不能转换为org.openqa.selenium.WebElement – meena 2015-02-24 08:10:44

+0

是因为你要存储字符串数组数据到web元素。 – 2015-02-24 08:20:05

回答

0

与上文提到的一样,您可能需要将itr.next()引用到Webelement。代码如下。

while(itr.hasNext()){ 
    WebElement element = (WebElement)itr.next(); 
    System.out.println(element.getText()); 
    element.click(); 
} 
+0

没有得到任何异常,但无法点击返回的值 – meena 2015-02-24 09:36:07

+0

谢谢帮助 – meena 2015-02-25 05:06:50

+0

如果您可以共享html的输出或源代码部分,我们可以帮助您更好地 – Ramki 2015-02-25 06:19:42

0

您还可以执行相同的任务使用增强的for循环为:

foreach(WebElement element : elementsList){ 
    System.out.println(element.getText()); 
    element.click(); 
}