为了账号安全,请及时绑定邮箱和手机立即绑定

合并两个 WebElements 列表

合并两个 WebElements 列表

长风秋雁 2023-05-24 15:28:51
无法打印合并列表中的值,因为它向我抛出空值!List<WebElement> DateTime2 = driver.findElements(By.xpath(""));driver.findElement(By.xpath("")).click();List<WebElement> DateTime3 = driver.findElements(By.xpath(""));List<WebElement> DateTime = new ArrayList<>(DateTime2);DateTime.addAll(DateTime3);Thread.sleep(2000);System.out.println("This is for testing the list " + DateTime.get(2).getText());System.out.println("This is for testing the list " + DateTime.get(30).getText());我希望输出打印日期和时间
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超12个赞

这是我使用的一些代码的示例(尽管我为此示例稍微更改了它。这通常是扩展另一个类的一部分。)


int sanitycount= 0;

int ec_Timeout = 10; //seconds to wait for list... 

    public void RunAction(WebDriver driver, String in_xpath)

    {

                  try

      {

        wait = new WebDriverWait(driver, ec_Timeout);

        List<WebElement> found_elements = new ArrayList<>();

        found_elements = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath(in_xpath)));


        if (!found_elements.isEmpty())

        {

        // store this array, return an array from function

        // or loop through array and add items to more global array..

        }


       }

       catch (Exception e)

       {

       if (e.getClass().getCanonicalName().equals("org.openqa.selenium.StaleElementReferenceException"))

         {

         //need to do it again, not finished loading

         System.out.println("*****************Stale caught-redoing");

         sanitycount++;

         if (sanitycount<ec_Timeout * 2)

         {

         RunAction(driver, in_xpath);

         }

      System.out.println (e.toString());

      }

      else

      {

      System.out.println (e.toString());

      }

    }

  }

RunAction(your_driver, your_xpath); 

//set sanitycount back to zero if you run again...


查看完整回答
反对 回复 2023-05-24
  • 1 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信