【问题标题】:How to select text based on the search using selenium webdriver如何使用 selenium webdriver 根据搜索选择文本
【发布时间】:2015-02-24 07:37:11
【问题描述】:

这是我的代码

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(未知来源)

【问题讨论】:

  • 不要调用 NEXT 2 次。这很好:while(itr.hasNext()) 但是从这里删除 next() : System.out.println(itr.next().getText());
  • 我已经删除并执行了线程“main”java.lang.ClassCastException中的这个异常:java.util.ArrayList$Itr cannot be cast to org.openqa.selenium.WebElement
  • 是的,因为你要将字符串数组数据存储到 Web 元素。
  • 应该像 String element = itr.next();

标签: java selenium-webdriver


【解决方案1】:

就像helphands 提到的那样,您可能需要将itr.next() 引用到Webelement。代码如下。

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

【讨论】:

  • 没有异常但无法点击返回值
  • 如果您可以分享输出或 html 的某些源代码部分,我们可以为您提供更好的帮助
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2019-02-06
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 2014-07-02
    • 2012-07-09
    相关资源
    最近更新 更多