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

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

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

扬帆大鱼 2023-02-16 15:37:53
我有我的 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();
查看完整描述

3 回答

?
MM们

TA贡献1886条经验 获得超2个赞

查看此 String CaselevelSigningCMs 是如何定义的。就像那样去 ArrayList

可以说使用的字符串是在某些地方定义的

 public String CaselevelSigningCMs = "";

同样定义ArrayList

 public List<String> collectedItems=new ArrayList<>();

在循环中添加获取每个元素的文本,比如

 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());



查看完整回答
反对 回复 2023-02-16
?
萧十郎

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

您可以使用Stream.map() 函数一次性将WebElements列表转换为包含元素文本属性的字符串列表:

List<String> allText = driver.findElements(By.xpath("//*[@id='pnlLeftMenu']/table/tbody/tr/td[2]/table[2]/tbody/tr[3]/td/table/tbody/tr"))
        .stream()
        .map(WebElement::getText)
        .collect(Collectors.toList());
allText.forEach(System.out::println);

我也不太喜欢您的 XPath 表达式,尤其是:

  • //*通配符

  • 这些table[2]tr[3]

通配符表达式需要更长的时间来执行并消耗更多的资源,并且您的方法似乎非常依赖DOM结构,因此我建议使用XPath 轴以及XPath 函数/运算符来使您的表达式尽可能相关、健壮和可靠。

您还可以考虑使用HtmlElements框架的Table类来处理 HTML表格


查看完整回答
反对 回复 2023-02-16
?
BIG阳

TA贡献1859条经验 获得超6个赞

You can use Arraylist to store and retrieve them

数组列表 ts=new ArrayList();

将对象存储在数组列表中

ts.add();


查看完整回答
反对 回复 2023-02-16
  • 3 回答
  • 0 关注
  • 84 浏览

添加回答

举报

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