如何存储列表中多个项目的全局数组供以后使用

我有我的 selenium 代码,它可以提取列表中可用的名称列表。现在我想存储与全局相同的名称以备后用。请帮忙。


我已经尝试过数组处理,它只对每一行进行处理,而不是对值进行处理。


List<WebElement> allText = driver.findElements(By.xpath("//*[@id='pnlLeftMenu']/table/tbody/tr/td[2]/table[2]/tbody/tr[3]/td/table/tbody/tr"));


int total = allText.size();

System.out.println(total);


for(int i=3;i<=total;i++)

{

     CaselevelSigningCMs =driver.findElement(By.xpath("//*[@id='pnlLeftMenu']/table/tbody/tr/td[2]/table[2]/tbody/tr[3]/td/table/tbody/tr"+"["+i+"]"+"/td[2]")).getText();

     System.out.println(CaselevelSigningCMs);


}

我应该得到这样的名字:Ranjit Nyk、Sudhanva G...。我必须在其他类/方法的其他页面中验证这些名称。CaselevelSigningCMs 是一个全局变量,它只提取单个项目。我需要定义为全局的类似数组,以便它可以提取多个项目。


CaselevelSigningCMs =driver.findElement(By.xpath("//*[@id='pnlLeftMenu']/table/tbody/tr/td[2]/table[2]/tbody/tr[3]/td/table/tbody/tr"+"["+i+"]"+"/td[2]")).getText();


扬帆大鱼
浏览 98回答 3
3回答

MM们

查看此 String CaselevelSigningCMs 是如何定义的。就像那样去 ArrayList可以说使用的字符串是在某些地方定义的&nbsp;public&nbsp;String&nbsp;CaselevelSigningCMs&nbsp;=&nbsp;"";同样定义ArrayList&nbsp;public&nbsp;List<String>&nbsp;collectedItems=new&nbsp;ArrayList<>();在循环中添加获取每个元素的文本,比如&nbsp;collectedItems.add(driver.findElement(By.xpath("//*[@id='pnlLeftMenu']/table/tbody/tr/td[2]/table[2]/tbody/tr[3]/td/table/tbody/tr"+"["+i+"]"+"/td[2]")).getText());

萧十郎

您可以使用Stream.map() 函数一次性将WebElements列表转换为包含元素文本属性的字符串列表:List<String>&nbsp;allText&nbsp;=&nbsp;driver.findElements(By.xpath("//*[@id='pnlLeftMenu']/table/tbody/tr/td[2]/table[2]/tbody/tr[3]/td/table/tbody/tr")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(WebElement::getText) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.collect(Collectors.toList()); allText.forEach(System.out::println);我也不太喜欢您的 XPath 表达式,尤其是://*通配符这些table[2]和tr[3]通配符表达式需要更长的时间来执行并消耗更多的资源,并且您的方法似乎非常依赖DOM结构,因此我建议使用XPath 轴以及XPath 函数/运算符来使您的表达式尽可能相关、健壮和可靠。您还可以考虑使用HtmlElements框架的Table类来处理 HTML表格

BIG阳

You&nbsp;can&nbsp;use&nbsp;Arraylist&nbsp;to&nbsp;store&nbsp;and&nbsp;retrieve&nbsp;them数组列表 ts=new ArrayList();将对象存储在数组列表中ts.add();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java